The tenth pattern---------------State Pattern

来源:互联网 发布:卡罗莱纳死神 淘宝 编辑:程序博客网 时间:2024/05/21 06:29

OO模式:

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

我的理解:

碰到状态图的时候,把动作抽出来作为一个借口,所有的状态作为一个类去实现这个接口,状态类中要有状态拥有者的引用。(即把行为都封装在状态中了)
重点:
1) 状态模式允许一个对象基于内部状态而拥有不同的行为。
2) 和程序状态机不同,状态模式用来代表状态。
3) Context会将行为委托给当前状态对象
4) 通过将每个状态封装进一个类,我们把以后需要做的任何改变局部化了。
5) 状态模式和策略模式有相同的类图,但是它们的意图不同。
6) 策略模式通常会用行为或算法来配置Context类。
7) 状态模式允许Context随着状态的改变而改变行为。
8) 状态转换可以由state累或context类控制。
9) 使用状态模式通常会导致设计类的数目大量增加。
10) 状态类可以被多个context实例共享。

原创粉丝点击