MVC(或MVP)可以与SPA共存吗?

时间:2008-12-05 07:49:32

标签: model-view-controller architecture mvp soa

我认为在使用MVC或MVP设计模式时,业务逻辑应存在于模型中,但应隐藏在面向服务的体系结构中的服务之后。

软件系统能否在面向服务的架构中使用MVC或MVP设计模式?如果是这样,模型在哪里?

2 个答案:

答案 0 :(得分:12)

他们是完全不同的动物。 MVC是关于数据的呈现,控制用户对话框的导航以及构建数据模型的一些业务逻辑。

SOA是关于从服务提供商检索数据。

在客户端,您可以在MVC模式的Model部分中使用SOA来使用来自SOA服务的数据构建模型。

在服务方面,由于没有演示文稿而没有用户对话框,大多数MVC模式变得多余。此外,良好的SOA设计应该集中于提供有用的服务,而不管底层数据存储,因此“模型”部分变得很偶然。

确实,许多服务都是“有状态的”(例如,订单经过验证,支付,发送然后收到),但这些状态是业务逻辑中不可或缺的一部分,并且不适合典型的会话管理MVC模式。

答案 1 :(得分:3)

好问题。 我认为MVC和SOA将并且必须共存。 MVC是用户与系统通信最成功的架构。 SOA是一种有效的系统 - 系统通信架构。在大多数组织中,两者都有一席之地。因此我相信他们会共存。

就他们如何互相交流而言,我的个人观点是 - MVC将继续(一旦SOA炒作消失)作为核心架构模式,模型和控制器在适当的情况下暴露服务接口。