状态模式
来源:互联网 发布:mac 相册 导出 编辑:程序博客网 时间:2024/06/05 17:31
状态模式(State Pattern):
1、Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.
也就是说状态模式封装的非常好,状态的变更引起了行为的变更,从外部看起来就好像这个对象对应的类发生了改变一样。
2、首先是避免了过多的swith…case或者if..else语句的使用,避免了程序的复杂性;
3、其次是很好的使用体现了开闭原则和单一职责原则,每个状态都是一个子类,你要增加状态就增加子类,你要修改状态,你只修改一个子类就可以了;
4、最后一个好处就是封装性非常好,这也是状态模式的基本要求,状态变换放置到了类的内部来实现,外部的调用不用知道类内部如何实现状态和行为的变换。
5、状态模式缺点,子类会太多,也就是类膨胀。
0 0
- 状态模式(状态变化)
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 状态模式
- 不装Oracle 只装 SQL developer 时候,配置 PATH的问题
- (29)ExtJS之Panel面板锚定位中的百分比定位
- 四 memcache应对高并发
- (30)ExtJS之Panel面板锚定位中的偏移值定位
- 浅谈ISO 8859-1与UTF-8
- 状态模式
- 黑马程序员-C语言基础学习(一)
- 【修正二叉树】Recover Binary Search Tree
- 设计模式学习(1)——创建型设计模式
- (31)ExtJS之Panel面板锚定位中的参考边定位
- try-catch-finally语句中有return语句时的执行情况
- HDU 4341 Gold miner (分组背包)
- C++编程练习——2014/3/12
- (32)ExtJS之Panel中Absolute绝对位置布局