我有一个可以处于多个状态的域模型,如果这些状态超出给定范围,域应该自动做出反应。
例如,我有一辆由多个具有测量值的物品组成的汽车
发动机 - 转速计数器和温度
燃料箱 - 容量
有一个CarStateController可以观察发动机和油箱,如果这些状态超出范围,即发动机温度超出范围,则打开发动机风扇。
没有用户界面,(你可以说它会在仪表板上显示一个亮点,但对于这种情况它不会)这是GRASP控制器模式的有效使用吗?如果不是这个CarStateController叫什么?
或者我完全错过了这一点,这应该是状态模式?
答案 0 :(得分:1)
你有没有想过把这个问题发给Craig Larman,他创造了GRAS Patterns ???他可能会也可能不会回答您的问题。我在他的书“应用UML和模式”中理解Facade控制器的方式,一个外观控制器不应该“维护有关系统或域的重要信息”PG 311第3版。否则你会得到一个膨胀的控制器。听起来你需要一个名为'Regulator'的额外域对象来监视其他域对象,并在级别太高或太低时做出反应。我意识到我没有解决你的状态模式,因为我不熟悉它。