1

我有一个可以处于多种状态的域模型,如果这些状态超出给定范围,域应该会自动做出反应。

例如,我有一辆汽车,它由多种具有测量值的东西组成

发动机 - 转速计数器和温度

油箱 - 容量

有一个 CarStateController 是合理的,它可以观察发动机和油箱,如果这些状态超出范围,即发动机温度高于范围,请打开发动机风扇。

没有 UI,(您可能会争辩说它会在仪表板上显示灯,但在这种情况下它不会)这是对 GRASP 控制器模式的有效使用吗?如果不是,这个 CarStateController 叫什么?

还是我完全错过了重点,这应该是状态模式?

4

1 回答 1

1

你有没有想过把这个问题发给创造 GRAS 模式的人 Craig Larman?他可能会也可能不会回答你的问题。我在他的书中应用 UML 和模式中理解外观控制器的方式,外观控制器不应该“维护有关系统或域的重要信息”PG 311 第 3 版。否则你会得到一个臃肿的控制器。听起来您需要一个称为“调节器”的附加域对象来监视其他域对象并在级别过高或过低时做出反应。我意识到我没有解决您的状态模式,因为我不熟悉它。

于 2010-04-02T21:38:06.127 回答