加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 16:29:49 所属栏目:Java 来源:网络整理
导读:我明白,状态模式可以用于模拟根据状态和各种状态改变行为的对象,Context可以将Context封装在表示State接口的具体类中.我不清楚的是,国家过渡如何在这种模式中发生.各州知道并决定谁跟随他们,还是决定接下来会获得哪个国家的上下文? 解决方法 从GOF设计模式
我明白,状态模式可以用于模拟根据状态和各种状态改变行为的对象,Context可以将Context封装在表示State接口的具体类中.我不清楚的是,国家过渡如何在这种模式中发生.各州知道并决定谁跟随他们,还是决定接下来会获得哪个国家的上下文?

解决方法

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读