【问题标题】:With MVC, do interactions with autonomous peripherals belong in the Model or the Controller?使用 MVC,与自主外围设备的交互属于模型还是控制器?
【发布时间】:2008-10-21 15:53:14
【问题描述】:

使用带有观察者模式的 MVC,如果用户操作需要轮询设备(例如相机)以获取数据,轮询应该在控制器中完成并且结果从模型传递出去,还是应该将请求发送到模型和模型本身执行轮询。

这个问题是我试图将我所读到的所有吹捧“瘦控制器”格言的内容与我的直觉相协调,即模型应该只对不获取数据的数据采取行动。

(注意:这个问题可能是主观的。我不完全确定这个问题有一个唯一正确的答案。如果没有,请随时重新标记,因为我会非常有兴趣听听有关该主题的意见。)

【问题讨论】:

    标签: model-view-controller language-agnostic model controller peripherals


    【解决方案1】:

    它属于控制器。模型包含信息和业务规则,控制器本质上是除用户、信息或业务规则之外的所有事物的接口,而视图处理用户交互。

    有人可能会争辩说,视图也可以控制这一点 - 相机型号和驱动程序可能由用户决定,因此属于该区域。

    但我不希望模型具有外围接口。

    -亚当

    【讨论】:

      【解决方案2】:

      控制器应该执行轮询。模型是我心中状态的快照,所以相机状态应该从控制器传递到模型。

      【讨论】:

        【解决方案3】:

        您可以在控制器下方和模型上方添加一个瘦服务层,这使您可以将所有对外围代码的访问权限放在一个地方

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-25
          • 1970-01-01
          • 1970-01-01
          • 2012-06-02
          相关资源
          最近更新 更多