定义:当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了行为。也就是在不同的状态下有不同的响应。
特点:在写法上类似策略模式,但是策略模式各个具体类是可以替换的,因为各个具体类的行为是彼此独立的,意义是相同的。而状态模式的各个具体类是意义各自不同,不能相互替换,不同的状态代表着不同的行为。
使用场景:
1.一个对象的行为取决于它的状态,并且在运行时根据状态改变行为。
2.代码中有大量的关于状态有关的语句。比如if else
优点:能够将复杂的代码封装到类中,增加扩展性和灵活性。
缺点:增加类的数量

实现一个电视遥控器的功能:这里有两种状态:开机 关机
设计模式--状态模式
开机后的状态类
设计模式--状态模式
关机后的状态类
设计模式--状态模式
操作类的抽象
设计模式--状态模式
操作类
设计模式--状态模式
进行使用
设计模式--状态模式

有个实际应用的例子,就是处理登录的情况。对于频繁进行验证的情况下,比较好用。
设计模式--状态模式

设计模式--状态模式

设计模式--状态模式

设计模式--状态模式

设计模式--状态模式

设计模式--状态模式

相关文章:

  • 2021-09-10
猜你喜欢
  • 2022-01-21
  • 2021-10-23
  • 2021-04-11
  • 2021-11-17
  • 2021-06-09
相关资源
相似解决方案