浏览 4106 次
锁定老帖子 主题:State状态模式
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-05-07
参考于下面的链接: //先来一个状态: package State; public abstract class State { /** *//** Creates a new instance of State */ public State() { } public abstract void opration(Context context); }//end class State //在来两个具体的State: public class ConcreteStateA extends State { /** *//** Creates a new instance of ConcreteStateA */ public ConcreteStateA() { } public void opration(Context context) { System.out.println("The Concrete A"); context.setSate(new ConcreteStateB()); }//end opration() public static ConcreteStateA getInstance() { return new ConcreteStateA(); }//end getInstance() } public class ConcreteStateB extends State { /** *//** Creates a new instance of ConcreteStateB */ public ConcreteStateB() { } public void opration(Context context) { System.out.println("The Concrete B"); context.setSate(new ConcreteStateA()); }//end opration() public static ConcreteStateB getInstance() { return new ConcreteStateB(); }//end getInstance() }//end class ConcreteStateB //来一个场景: public class Context { private State state; /** *//** Creates a new instance of Context */ public Context() { } public void setSate(State stat) { state = stat; }//end setState() public void operation() { state.opration(this); }//end operation() }//end class Context //怎样调用: public static void main(String[] args) { Context con = new Context(); con.setSate(ConcreteStateA.getInstance()); con.operation(); con.operation(); }//end main() 以上代码摘自上面介绍的blog中,不过有部分改动。下面是UML图 也是盗链的。。。。。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-05-07
状态模式常用于编译器中,构造有限状态机
|
|
返回顶楼 | |
发表时间:2008-05-07
现在只是学习,而工作中 还没有应用到 呵呵。努力努力
|
|
返回顶楼 | |
发表时间:2008-05-07
和某个好像叫fly的模式很像啊,就是执行者不保存状态,也不是做真正的执行,而是只是调用某个对象(相当于现在的state)的某个方法。
|
|
返回顶楼 | |