java – 谁在状态模式中定义状态转换?

前端之家收集整理的这篇文章主要介绍了java – 谁在状态模式中定义状态转换?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我明白,状态模式可以用于模拟根据状态和各种状态改变行为的对象,Context可以将Context封装在表示State接口的具体类中.我不清楚的是,国家过渡如何在这种模式中发生.各州知道并决定谁跟随他们,还是决定接下来会获得哪个国家的上下文?

解决方法

从GOF设计模式书(这在实施部分):

谁定义国家过渡?状态模式不指定哪个参与者定义状态转换的标准.如果标准是固定的,那么它们可以在上下文中完全实现.但是,让国家小组自己明确指定其继承国和何时进行过渡,通常更为灵活和适当.这需要添加一个接口,使Context可以显式地设置Context的当前状态.

以这种方式分散转换逻辑,可以通过定义新的状态子类来轻松地修改或扩展逻辑.权力下放的一个缺点是一个国家的子类将至少有一个其他的知识,它引入子类之间的实现依赖关系.

猜你在找的Java相关文章