Java 状态设计模式/"substates"

标签 java oop design-patterns state-pattern

我正在使用 Java 进行编码,并且使用 State 设计模式,如下例所示:http://onjavahell.blogspot.fr/2009/05/simple-example-of-state-design-pattern.html

但是我得到的 UML 是这样的:

+---------+        +---------+ 
| Context |--------|  State  |
+---------+        +---------+ 
                        |
               +----------------+
               |                |
          +---------+       +---------+
          | State 1 |       | State 2 |
          +---------+       +---------+
               |
       +----------------+
       |                |
  +----------+       +----------+
  | State 1A |       | State 1B |
  +----------+       +----------+

我有“子状态”。怎么才能码呢?我应该将抽象类设置为 State 1 还是有其他方法?搜索我没有找到这样的例子。

最佳答案

“子状态”是什么意思?在状态模式中,没有任何东西可以被视为“子状态”。 “状态”代表实体的状态。每个州都是一个州。除非你对你想要达到的目标给出合理的解释,否则我相信你在想一些不正确的事情。

只要所有状态共享相同的基类/接口(interface),它就可以工作。你可能有状态之间的继承关系,它仍然有效,它与状态模式无关。而且,即使你有继承关系,它们仍然是“状态”,而不是“子状态”

关于Java 状态设计模式/"substates",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13337398/

相关文章:

java - 尝试访问资源 URL 时 Spring Boot 中的 Http 404

MATLAB 对象属性可见但不可修改

java - 如何访问对象中的对象?

上下文感知自动完成

java - MVC 模式的原始想法

javascript 自定义模式验证类型

java - 在泛型中接受自身作为类型参数有什么用

java - 纸牌 JAVA

java - 类包装器和 Java 与 Objective-C 中的单例有什么区别?

php - 如何使用数据库值创建 4 个动态页面