行为型设计模式 - 状态模式详解 (2)

方便维护。将容易产生问题的 if-else 语句删除了,如果把每个状态的行为都放到一个类中,每次调用方法时都要判断当前是什么状态,不但会产出很多 if-else 语句,而且容易出错

缺点:

会产生很多类。每个状态都对应一个类,当状态过多时,维护难度变大

状态模式的结构与实现都较为复杂,如果使用不当将导致程序结构和代码的混乱

状态模式对"开闭原则"的支持并不太好,对于可以切换状态的状态模式,增加新的状态类需要修改那些负责状态转换的源代码,否则无法切换到新增状态,而且修改某个状态类的行为也需修改对应类的源代码。

适用环境:

行为随状态改变而改变的场景

条件、分支语句的代替者

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdxzj.html