设计模式学习与实践(十九)----状态模式(state)
来源:互联网 发布:热血江湖武勋阶段数据 编辑:程序博客网 时间:2024/06/16 19:09
1.1.1 描述
l 正规描述
状态模式允许一个对象在其内部状态改变的时候改变行为。这个对象看上去象是改变了它的类一样。状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。状态模式需要对每一个系统可能取得的状态创立一个状态类的子类。当系统的状态变化时,系统便改变所选的子类。
l 形象描述
跟MM交往时,一定要注意她的状态哦,在不同的状态时她的行为会有不同,比如你约她今天晚上去看电影,对你没兴趣的MM就会说“有事情啦”,对你不讨厌但还没喜欢上的MM就会说“好啊,不过可以带上我同事么?”,已经喜欢上你的MM就会说“几点钟?看完电影再去泡吧怎么样?”,当然你看电影过程中表现良好的话,也可以把MM的状态从不讨厌不喜欢变成喜欢哦。
1.1.2 类图&示意代码
public abstract class State(){
public abstract void Operation1();
}
public class ConcreteState1 extends State(){
public void Operation1(){
//to do
}
}
public class ConcreteState2 extends State(){
public void Operation1(){
//to do
}
}
public class StateOwner(){
private State state;
public void setState(State state){
this.state = state;
}
public void Operation1(){
if(state != null){
state.Operation1();
}
}
}
public class Client(){
public void main(String args[]){
State s1 = new ConcreteState1();
State s2 = new ConcreteState2();
StateOwner so = new StateOwner();
so.setState(s1);
so.Operation1();
so.setState(s2);
so.Operation1();
}
}
1.1.3 举例
1.1.4 比较
- 设计模式学习与实践(十九)----状态模式(state)
- 设计模式(十九)状态模式(State)-行为型
- 设计模式之(十九)状态模式(state)
- 设计模式C++之十九(State状态模式)
- 设计模式C++学习笔记之十九(State状态模式)
- 设计模式C++学习笔记之十九(State状态模式)
- 设计模式C++学习笔记之十九(State状态模式)
- 设计模式C++学习笔记之十九(State状态模式)
- 设计模式C++学习笔记之十九(State状态模式)
- 设计模式C++学习笔记之十九(State状态模式)
- 设计模式C++学习笔记之十九(State状态模式)
- 设计模式学习之------State模式(状态模式)
- 设计模式----State(状态)
- 设计模式学习笔记二十二(State状态模式)
- 设计模式学习--状态模式(State Pattern)
- 【设计模式】学习笔记14:状态模式(State)
- 【设计模式】学习笔记14:状态模式(State)
- 设计模式学习--状态模式(State Pattern)
- ORACLE的表分析策略
- pku 2418 (二叉排序树)
- 设计模式学习与实践(十八)----模板模式(template)
- RREORGCHK,REORG,RUNSTATS的作用与区别
- 代理服务器端口分配一览表
- 设计模式学习与实践(十九)----状态模式(state)
- 利用 dahdi_monitor 来捕获进入线路上的音频信号
- 【转】oracle 动态性能(V$)视图
- 用VS2005打开VS2008建的解决方案
- ubuntu系统分区
- DevPress GridControl的使用
- 告诉你身边的人
- 设计模式学习与实践(二十)----命令模式(command)
- 有效进行软件重用的小提示