我是Java新手,请原谅我这听起来像个愚蠢的问题。
为什么在遵循状态设计模式(为每个状态创建接口,上下文和具体子类)时可以做出如此大的努力,只需将给定对象的状态保存在变量中然后进行以后基于switch和if-else语句的决定?
答案 0 :(得分:5)
if
- else
和switch
语句会鼓励脆弱的代码和职责混合。
每次添加/删除/更新状态时,都必须更改相同的类和方法或调用子方法,因此您可以增加在任何状态逻辑中引入回归的几率,而您可以更改其中一个
通过分离关注点,状态不会耦合;您可以轻松修改它们,而不必冒任何其他人的风险。您甚至可以通过单元测试验证这一点。