Java - 为什么使用状态设计模式而不是保存变量中的状态?

时间:2018-04-24 20:05:44

标签: java design-patterns state

我是Java新手,请原谅我这听起来像个愚蠢的问题。

为什么在遵循状态设计模式(为每个状态创建接口,上下文和具体子类)时可以做出如此大的努力,只需将给定对象的状态保存在变量中然后进行以后基于switch和if-else语句的决定?

1 个答案:

答案 0 :(得分:5)

if - elseswitch语句会鼓励脆弱的代码和职责混合。

每次添加/删除/更新状态时,都必须更改相同的类和方法或调用子方法,因此您可以增加在任何状态逻辑中引入回归的几率,而您可以更改其中一个

通过分离关注点,状态不会耦合;您可以轻松修改它们,而不必冒任何其他人的风险。您甚至可以通过单元测试验证这一点。