加上昨天的桥梁模式 发现jt的实现这3个模式很相似 看代码
JtAbstractFactory.java
在看看状态模式的实现
太一样了 ,看来jt只是提供了一种模式的调用的统一方式 由此也能看出设计软件第三者有多重要
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只是提供了一种模式的调用的统一方式 由此也能看出设计软件第三者有多重要