操作型模式之State(状态)模式
来源:互联网 发布:ubuntu重置软件设置 编辑:程序博客网 时间:2024/05/22 04:24
1.如果你期望各个类都实现一个操作,每个类代表一个不同的状态,可使用State(状态)模式
2.举例
//状态抽象类public abstract class State { abstract void handle();}
//状态A类public class StateA extends State{ @Override void handle() { // TODO Auto-generated method stub System.out.println("StateA"); }}
//状态B类public class StateB extends State{ @Override void handle() { // TODO Auto-generated method stub System.out.println("StateB"); }}
//状态管理者:根据用户操作来决定采用哪个状态public class ContextManager { private State state; public void doSomething(char i){ switch (i) { case 'A': state = new StateA(); break; default: state = new StateB(); break; } state.handle(); }}
//测试类public class Test { public static void main(String[] args){ ContextManager cm = new ContextManager(); cm.doSomething('A'); cm.doSomething('C'); }}
//结果StateAStateB
3.总结:State模式的意图在于将与状态有关的处理逻辑分散到代表对象状态的各个类中。为处理状态之间的迁移,可以让中心对象(即状态管理者)保留对状态集的引用。或者,在状态迁移调用中,可以传递状态正在改变的中心对象。无论怎样管理状态迁移,都可以应用State模式将对象的不同状态用一个状态集合类集合来表示,并将操作分散在这个状态类的集合中,从而简化我们的代码。
4.参考:http://www.cnblogs.com/java-my-life/archive/2012/06/08/2538146.html
0 0
- 操作型模式之State(状态)模式
- 设计模式之State(状态模式)
- 状态模式(state) -- (模式之十三)
- 【设计模式】之状态模式(State)
- 设计模式之状态模式(State)
- 设计模式之状态模式(STATE)
- 设计模式之(State)状态模式
- 设计模式之状态模式(State)
- 设计模式之状态模式(State)
- 行为型模式之状态模式(State)
- 行为型模式之状态模式(State)
- 行为型模式-----状态模式(State)
- 状态模式(State)
- State(状态模式)
- State(状态)模式
- 状态(State)模式
- 状态模式(State)
- 状态模式(State)
- open-falcon开源监控使用
- 根据先序和中序遍历重建二叉树java实现
- C++实现 一个数组实现两个栈
- 数据库sqlite3
- webstorm快捷键
- 操作型模式之State(状态)模式
- 利用Scroller实现防QQ列表侧滑效果
- 文件编程
- Android学习笔记(Google官方教程)(二)
- 百思不得姐之新帖(四)
- 笔记练习:《Javascript入门经典(第5版)》page115_9.9_Practice
- 冒泡排序法
- 红与黑
- Re-factoring some internals of prepared statements in 5.7