【问题标题】:MVC multi-tier mobile applicationMVC 多层移动应用
【发布时间】:2013-01-05 06:19:32
【问题描述】:
我对使用 MVC 模式有点困惑。我们有一个 3 层架构:数据、中间件、前端。我们正在开发一款适用于 iPad 的应用程序,它主要执行以下操作:
- 使用 JSON 服务
- 以某种 UI 形式显示结果
- 用户交互(点击图标)/修改(编辑某些输入)
- 重复...
一个业务流程在前一个流程的 n 次迭代后完成,即我们消费一个服务并更新屏幕,用户做了一些事情,我们使用前一个服务的响应数据加上一些其他用户输入作为将参数传递给第二个请求,然后将第二个请求的结果提供给第三个请求,依此类推,直到过程完成。
我的问题是,我真的不明白 MVC 模式如何适应这一点。我只在前端层工作(只是用 Cocoa Touch 开发 iPad),我应该在 iPad 应用程序中拥有 MVC 的三个组件吗?还是只是视图和控制器?
我的困惑来自这样一个事实,据我所知,模型是数据层,控制器是中间件,视图是 iPad 应用程序,但我觉得我必须在前端层。
提前致谢。
【问题讨论】:
标签:
ipad
model-view-controller
mobile
3-tier
【解决方案1】:
在对 MVC 模式进行了更多研究并阅读了许多参考资料之后,其中大部分来自 SO 中的问题,我想我可以给出这样的答案:
MVC 模式是应用程序组件之间关注点的逻辑分离。
3 层架构实现了数据、应用程序处理和表示之间的关注点分离,但它也意味着物理分离,因为它本质上是一个服务器-客户端架构。
这两种技术可以同时使用,因为它们可以被视为互补。
由于 MVC 模式是一种逻辑分离,因此模型的不同部分很可能位于不同的物理位置。控制器也是如此,您可以在移动设备和服务器中拥有不同的控制器部分。您的所有视图都在设备中。
这里总结了如何应用这两种技术来开发服务器-客户端移动应用程序
型号
模型是你的数据和修改它的规则,这意味着你的模型的一部分在应用程序处理层。数据可以是本地的,即存储在设备中,这意味着它在 Presentation 层中,也可以是远程的,例如在数据库中,所有代表它们的中间对象都在 >数据层。
查看
视图位于演示层。这是设备上的实际用户界面。
控制器
控制器也可以物理分布在客户端和服务器中。
这是从模型接收通知并更新视图或处理来自视图的事件并相应地使用模型的所有代码。这会将其置于 应用程序处理 层。