8

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

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

4

2 回答 2

12

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

SOA 是关于从服务提供者那里检索数据。

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

在服务端,由于没有演示和用户对话,大多数 MVC 模式变得多余。此外,良好的 SOA 设计应该专注于提供有用的服务,而不管底层数据存储如何,因此“模型”部分在很大程度上是附带的。

的确,许多服务是“有状态的”(例如,订单经过验证、付款、发送然后接收),但这些状态是业务逻辑的一个组成部分,不适合 MVC 模式的典型会话管理.

于 2008-12-05T08:04:36.343 回答
3

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

就它们如何相互交互而言,我个人的看法是——MVC 将保持(一旦 SOA 炒作消失)作为核心架构模式,模型和控制器都在适当的地方公开服务接口。

于 2009-11-17T10:52:34.877 回答