将MVC与观察者模式一起使用,如果用户操作需要轮询设备(例如摄像头)的数据,是否应在Controller中进行轮询并将结果从模型传递出来,或者是否应将请求发送给模型和模型本身执行轮询。
这个问题是我试图调和我正在阅读的所有内容,并以“我的直觉”来宣传“瘦弱的控制者”格言,即模型应该只对未获取数据的数据采取行动。
(注意:这个问题可能是主观的。我不完全确定这个问题有一个真实的答案。如果没有,请随意重拍,因为我会非常有兴趣听取有关该主题的意见。)
答案 0 :(得分:1)
Controller应执行轮询。模型是我脑海中状态的快照,因此摄像机状态应该从控制器传递到模型。
答案 1 :(得分:1)
它属于控制器。该模型包含信息和业务规则,控制器本质上是非用户,信息或业务规则的所有内容的接口,视图处理用户交互。
有人可能会认为视图也可以控制它 - 相机模型和驱动程序可能由用户决定,因此属于该区域。
但我不希望该模型具有外设接口。
- 亚当
答案 2 :(得分:1)
您可以在控制器及以上型号下添加一个瘦服务层,这样您就可以将所有访问外围代码放在一个地方了