代码改变世界

21.状态模式

2019-08-22 10:42  zhongj  阅读(139)  评论(0编辑  收藏  举报
  • 一、角色
    • 环境类(Context):对状态进行管理
    • 抽象状态类(State):所有状态类的抽象接口
    • 具体状态类(ConcreteState):具体状态实现类
  • 二、适用场景
    • 对象的行为依赖于它的状态(属性)并且可以根据它的状态改变而改变它的相关行为
    • 代码中包含大量与对象状态有关的条件语句,这些条件语句的出现,会导致代码的可维护性和灵活性变差,不能方便地增加和删除状态,使客户类与类库之间的耦合增强。在这些条件语句中包含了对象的行为,而且这些条件对应于对象的各种状态
  • 三、实例
    图-1