MVCおよびMVP、MVVMなどの他のMVC関連パターンは、アプリケーションのUIレイヤーに関連付けられているパターンです。(Winforms / Web / WPFまたはUIフレームワークが何であれ)。
基本的に、これらのUIパターンは、UIプレゼンテーション関連の側面からのUIロジックの緩い結合を促進します。それらは次のような利点を提供します:
- 自動化された単体テストツールを使用して、UIロジックレイヤーユニットをテスト可能にします。(実際のUIを起動する必要はありません)
- UIとUIロジックコンポーネント間の結合が緩いため、UIロジッククラスはより再利用可能になります。(ieControllersとModelsは複数のビューで使用できます)
- Also give additional benefits which wouldn't be used commonly such as being able to save the status of a UI by serializing the Models etc..
MVC and N-Tiered architecture are not two opposite approaches from which you need to choose one or the other.
Depending on your requirenments, you can mix and match them to suite your application requirements.
For e.g. you can choose to have an overall 3-Tiered solution with UI, Business Logic and Data Access Layers. Within this you can choose to have your UI layer implemented in MVC style.
to clarifiy more, you can have your Business Logic layer as a set of services exposing business functionalities while communicating with the Data Access Layer for persistance.
At the same time Controllers on your UI layer could access these Business layer services for business functionalites and build Models/ViewModels to suite the Views.
Implementations could vastly differer, this is just an example.
Basically these two patters can complement each other in offering a better solution.