State Pattern

定义:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。

 
主要解决 当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。
 
意图:允许一个对象在其内部状态改变时改变它的行为
 
适用场景:
 
  1.一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。
 
  2.一个操作中含有庞大的多分支结构,并且这些分支决定于对象的状态。
 
状态模式 - DaySpring - DaySpring的博客
 
状态和策略模式的异同点:
利用多态把一些操作分配到一组相关的简单的类中
 
对状态进行建模时,状态迁移是一个核心内容,策略模式允许一个客户选择或提供一种策略
在状态模式中,状态的变迁是由对象的内部条件决定,外界只需关心其接口,不必关心其状态对象的创建和转化;而策略模式里,采取何种策略由外部条件(C)决定
 

猜你喜欢

转载自www.cnblogs.com/xiaowater/p/9995294.html