论坛首页 Java企业应用论坛

JT框架初探三--抽象工厂和状态模式

浏览 1457 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-04-16  
加上昨天的桥梁模式 发现jt的实现这3个模式很相似 看代码
JtAbstractFactory.java
package Jt;



/**
 * Jt Implementation of the Abstract Factory pattern.
 * Jt 实现抽象工厂模式的类
 * 为了方便理解 我在源代码的基础上删除了一些代码
 * 如果需要看源代码去他官网下载
 */


public abstract class JtAbstractFactory extends JtObject {

    public static final String JtCLASS_NAME = JtAbstractFactory.class.getName(); 
    //具体的工厂 很像我昨天讲的桥模式的实现  
    private Object concreteFactory = null;
    
	 public JtAbstractFactory() {
    }

 
    public Object getConcreteFactory() {
        return concreteFactory;
    }
 
    
    public void setConcreteFactory(Object concreteFactory) {
        this.concreteFactory = concreteFactory;
    }

    /**
     *  处理消息的方法
     */

    public Object processMessage (Object event) {
 

        if (concreteFactory == null) {
            handleError 
            ("processMessage: concreteFactory attribute needs to be set");
            return (null);
        }
        //有消息就转交给具体工厂的去处理消息
        return ((JtInterface) concreteFactory).processMessage (event);
    }
}




在看看状态模式的实现



package Jt;

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

public class JtState extends JtObject {

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


    public JtState () {
    }

    

    public void setConcreteState (Object state) {
        this.concreteState = state; 

    }

    
    public Object getConcreteState () {
        return (concreteState);
    }


     
    public Object processMessage (Object message) {



        if (concreteState == null) {
            handleError ("processMessage: concreteState attribute must be set");
            return (null);
        }

        return (((JtInterface) concreteState).processMessage (message));

    }
}


太一样了 ,看来jt只是提供了一种模式的调用的统一方式 由此也能看出设计软件第三者有多重要
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics