2014-12-07 33 views
0

作为一个较大的学校项目的一部分,我有一个使用MVC模式的应用程序设计,现在有一个新的要求来添加远程监控站。看起来代理模式最适合远程监控,但是... 将代理挂接到视图中还是需要其他东西,如适配器,或挂钩到模型中,并使用新的视图/客户端的控制器?如何使用代理模式与MVC

这是我试图描述的一个基本的UML例子。

enter image description here

+0

远程监控站是否包含您将在视图中显示的数据? – cfeduke 2014-12-07 06:15:40

+0

@cfeduke是的,将视图看作显示面板来显示硬件状态,如温度传感器值,远程监控系统显示与智能手机或Web界面等相同的状态/值。 – CodeKid 2014-12-07 06:21:42

回答

0

其中控制器访问代理来检索其数据,然后包括在模型中的视图数据,显示你可以建模。这将允许您执行某些操作,例如隐藏客户端的API访问密钥或其他凭据(在使用许多第三方服务时非常重要)。这还允许您在控制器级别执行代理缓存值的操作 - 或者更可能是控制器和代理之间的注入方面[即另一个代理]。

但是,有些情况下,您会从客户端和Web应用程序中考虑这个问题,您可能逻辑上认为该解决方案存在于视图中(只要您逻辑思考JavaScript)。实际上,实际的设计是,您拥有客户端代码,这些客户端代码位于视图中,并分解成自己的具有控制器,模型,视图等的UML模型。您可以在服务器后端缓存不重要的情况下执行此操作,或者敏感证书信息不应该离开客户机器的地方。

当您从等式中移除JavaScript并且您正在考虑只是一个vanilla MVC设计时,我相信最好让控制器访问代理。

+0

谢谢寻求帮助和指导。我还没有处理访问密钥或其他类型的凭证,但你已经给了我一些我应该追求的更多的想法。 – CodeKid 2014-12-08 01:52:31