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

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

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

设计模式--状态模式

设计模式--状态模式

设计模式--状态模式

设计模式--状态模式

设计模式--状态模式

相关文章:

  • 2021-09-24
  • 2020-02-10
  • 2019-08-28
  • 2021-11-02
  • 2021-11-13
  • 2019-05-26
  • 2021-08-06
  • 2021-07-07
猜你喜欢
  • 2019-09-22
  • 2020-04-26
  • 2021-01-29
  • 2017-12-17
  • 2019-08-24
  • 2018-10-30
  • 2018-11-14
相关资源
相似解决方案