状态模式---行为型

 

 

3 相关模式

(1)状态模式和策略模式

  这是两个结构相同,功能各异的模式,具体的在策略模式里面讲过了,这里就不再赘述。

(2)状态模式和观察者模式

    这两个模式乍一看,功能是很相似的,但是又有区别,可以组合使用。这两个模式都是在状态发生改变的时候触发行为,只不过观察者模式的行为是固定的,那就是通知所有的观察者;而状态模式是根据状态来选择不同的处理。从表面来看,两个模式功能相似,观察者模式中的被观察对象就好比状态模式中的上下文,观察者模式中当被观察对象的状态发生改变的时候,触发的通知所有观察者的方法就好比是状态模式中,根据状态的变化选择对应的状态处理。但实际这两个模式是不同的,观察者模式的目的是在被观察者的状态发生改变的时候,触发观察者联动,具体如何处理观察者模式不管;而状态模式的主要目的在于根据状态来分离和选择行为,当状态发生改变的时候,动态地改变行为这两个模式是可以组合使用的,比如在观察者模式的观察者部分,当被观察对象的状态发生了改变,触发通知了所有的观察者以后,观察者该怎么处理呢?这个时候就可以使用状态模式,根据通知过来的状态选择相应的处理。

(3)状态模式和单例模式

这两个模式可以组合使用,可以把状态模式中的状态处理类实现成单例

(4)状态模式和享元模式

    这两个模式可以组合使用。由于状态模式把状态对应的行为分散到多个状态对象中,会造成很多细粒度的状态对象,可以把这些状态处理对象通过享元模式来共享,从而节省资源。

posted @ 2019-08-23 17:20  windy杨树  阅读(127)  评论(0编辑  收藏  举报