- 状态模式属于什么类型的设计模式?
- 行为型
- 状态模式的大致实现原理?
- 需要一个Context类管理几种状态对应点的类
- 需要一个State类,来对应在不同状态下初始化对应的类;
- 需要若该类是想不同状态下对应的业务逻辑
- 状态模式的优势在于什么?
- 例如一个流程中有若干状态对应着不同的处理操作,如果使用if-else来编写程序则会存在大量的判断逻辑,对于后期的维护非常不利。
- 状态模式对不同状态的操作进行了解耦,也非常利于后期的维护。
- 状态模式中还存在的问题
- 在状态模式的接口中定义了所有事件函数,这就导致即使某个状态不需要支持其中的某些时间也要去实现这个方法。
- 解决的方式就是在实现类和接口中间引入一个抽象类,该抽象类实现接口,而具体的实现类继承该抽象类,这样就可以提升扩展性。