我正在使用 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/