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

Den*_*nny 1 java state design-patterns

我对Java非常陌生,所以请问这听起来像是一个愚蠢的问题。

当您遵循状态设计模式(为每个状态创建接口,上下文和具体子类)时,为什么只花给定对象的状态保存在变量中,然后根据稍后再切换和if-else语句?

dav*_*xxx 5

if- elseswitch声明鼓励易碎的代码和职责混合。

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

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