2008-12-05 106 views
8

我認爲使用MVC或MVP設計模式時業務邏輯應該存在於模型中,但應該隱藏在面向服務架構中的服務之後。MVC(或MVP)可以與SOA共存嗎?

軟件系統可以在面向服務的體系結構中使用MVC或MVP設計模式嗎?如果是這樣,模型坐在哪裏?

回答

11

那麼他們是完全不同的動物。 MVC是關於數據的表示,控制用戶對話框的導航以及構建數據模型的一些業務邏輯。

SOA是關於從服務提供者檢索數據的。

在客戶端,您可以在MVC模式的Model部分內使用SOA,以使用來自SOA服務的數據構建模型。

在服務方面,由於沒有演示和沒有用戶對話框,大部分MVC模式變得多餘。此外,良好的SOA設計應該專注於提供有用的服務,而不管底層數據存儲如何,所以「模型」部分在很大程度上變得偶然。

許多服務確實是「有狀態的」(例如,訂單被驗證,支付,然後收到),但這些狀態是業務邏輯的組成部分,並且不適用於典型的會話管理的MVC模式。

3

好問題。 我認爲MVC和SOA將會並且必須共存。 MVC是用戶與系統通信最成功的架構。 SOA是有效的系統系統通信的體系結構。在大多數組織中,都有兩個地方。所以我相信他們會共存的。我個人的觀點是 - MVC將保留(一旦SOA炒作消失)作爲核心架構模式,同時模型和控制器會在適當的時候公開服務接口。

相關問題