设计模式之---------状态模式

来源:互联网 发布:建个网络平台多少钱 编辑:程序博客网 时间:2024/05/18 01:06

状态模式,顾名思义就是用于处理状态的一种方法。

至于具体如何实现下面再说,先来看一个事例:饮料自动贩卖机,它有很多状态(售空,有货,补货。。。。)

对于大多数没有了解过状态模式的人来说,要编程实现贩卖机这个例子的话可能会用到许多条件判断语句,利用判断分支来决定执行的操作,而这些操作的实现又是依赖于方法的。

而状态模式就不同了,具体说就是:把各个状态定义成不同的对象,各个对象封装自己的的实现。然后定义一个上下文对象,上下文对象的状态即是它当前关联的状态对象。

一图胜千言,上图!!


context是上下文对象,也就是用户直接操作的对象。

AbstractState是抽象状态,State1\2都是具体的状态。

要注意的是,Context对象与AbstractState状态之间的关系是聚合关系。我们知道,聚合是一种强的关联关系,他表示的是一种整体的关系。所以说,Context与state类共同组成了问们需要的状态变化。

原创粉丝点击