jtfacade.java

来自「Java Pattern Oriented Framework (Jt) 是为了」· Java 代码 · 共 132 行

JAVA
132
字号
package Jt;



/**
 * Jt Implementation of the Facade design pattern.
 */

public class JtFacade extends JtComposite {


  public static final String JtCLASS_NAME = JtFacade.class.getName(); 
  private static final long serialVersionUID = 1L;


  public JtFacade () {
  }


  // Test this facade

  private Object test () {
    JtMessage msg, tmp;

    // Broadcast the JtTEST message to all the subsystems
    // of the facade

    System.out.println 
     ("Sending a JtTEST message to all the subsystems of the facade ...");

    msg = new JtMessage (JtObject.JtBROADCAST);

    tmp = new JtMessage (JtObject.JtTEST);

    msg.setMsgContent (tmp);


    return (sendMessage (this, msg));

  }

  /**
    * Process object messages.
    * <ul>
    * <li>JtREMOVES - Performs any housekeeping that may be needed before the object is removed.
    * </ul>
    */

  public Object processMessage (Object event) {

   String msgid = null;
   JtMessage e = (JtMessage) event;
   //Object content;
   //Object data;


     if (e == null)
	return null;

     msgid = (String) e.getMsgId ();

     if (msgid == null)
	return null;

     //content = e.getMsgContent();
     //data = e.getMsgData ();


     if (msgid.equals (JtObject.JtTEST)) {
       return (test ());     
     }

     return (super.processMessage (event));


  }

 
  /**
   * Demonstrates the messages processed by JtFacade.
   */


  public static void main(String[] args) {

    JtFactory factory = new JtFactory ();
    JtFacade facade;
    JtEcho echo1;
    JtEcho echo2; 
    JtMessage msg;

    // Create an instance of JtFacade

    facade = (JtFacade) factory.createObject (JtFacade.JtCLASS_NAME, "facade");


    echo1 = (JtEcho) factory.createObject (JtEcho.JtCLASS_NAME, "echo1");
    echo2 = (JtEcho) factory.createObject (JtEcho.JtCLASS_NAME, "echo2");


    System.out.println ("JtFacade(JtADD_CHILD): adding a subsystem ...");

    msg = new JtMessage (JtComposite.JtADD_CHILD);

    factory.setValue (msg, "msgContent", echo1);
    //factory.setValue (msg, "msgData", "echo1");

    factory.sendMessage (facade, msg);


    System.out.println ("JtFacade(JtADD_CHILD): adding a subsystem ...");

    msg = new JtMessage (JtComposite.JtADD_CHILD);

    factory.setValue (msg, "msgContent", echo2);
    //factory.setValue (msg, "msgData", "echo2");

    factory.sendMessage (facade, msg);


    factory.sendMessage (facade, new JtMessage (JtObject.JtTEST));

    factory.removeObject ("facade");


  }


}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?