builderexample.java

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

JAVA
114
字号


package Jt.examples.patterns;

import Jt.JtBuilder;
import Jt.JtComposite;
import Jt.JtFactory;
import Jt.JtInterface;
import Jt.JtMessage;
import Jt.JtObject;


/**
 * Demonstrates the use of the JtBuilder design pattern.
 */

public class BuilderExample extends JtBuilder {


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

    
    public BuilderExample () {
    }

    private Object build () {
        Expression expression = new Expression ();
        JtMessage msg = new JtMessage (JtComposite.JtADD_CHILD);
        
        
        expression.setOperand ("+");
        
        msg.setMsgContent(new Integer (1));
        
        sendMessage (expression, msg);
        
        msg.setMsgContent(new Integer (2));
        
        sendMessage (expression, msg);
        
        return (expression);        
    }


    public Object processMessage (Object event) {

        String msgid = null;
        JtMessage e = (JtMessage) event;


        if (e == null)
            return null;

        msgid = (String) e.getMsgId ();

        if (msgid == null)
            return null;


        if (msgid.equals (JtObject.JtREMOVE)) {
            return (null);     
        }
        
        if (msgid.equals (JtBuilder.JtBUILD)) {
            return (build ());     
        }

        return (super.processMessage(event));

    }


    /**
     * Demonstrates the use of the JtBuilder design pattern.
     */

    public static void main(String[] args) {

        JtFactory factory = new JtFactory ();
        JtBuilder builder, builder1;
        JtInterface expression;


        // Create an instance of JtBuilder

        builder = (JtBuilder) factory.createObject (BuilderExample.JtCLASS_NAME);
              
        // Build the expression using a composite (tree representation)

        expression = (JtInterface) factory.sendMessage (builder, new JtMessage (JtBuilder.JtBUILD));

        factory.sendMessage (expression, new JtMessage (JtObject.JtPRINT));
        
        // Build the expression using another concrete builder (list representatio)
        
        builder1 = (JtBuilder) factory.createObject (BuilderExample1.JtCLASS_NAME);
        
        expression = (JtInterface) factory.sendMessage (builder1, new JtMessage (JtBuilder.JtBUILD));

        factory.sendMessage (expression, new JtMessage (JtObject.JtPRINT));
        
        // Remove the objects 

        factory.removeObject (builder);
        factory.removeObject (builder1);

    }


}


⌨️ 快捷键说明

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