状态模式

来源:互联网 发布: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
原创粉丝点击