63

3 層アーキテクチャと mvc の違いは何ですか?

それらは同じですか?

どちらにも、モデル、ビュー、コントローラーの 3 つのレイヤーがあります。

4

10 に答える 10

81

MVC アーキテクチャとの比較

一見すると、3 つの層はモデル ビュー コントローラー (MVC) の概念に似ているように見えるかもしれません。ただし、トポロジー的には異なります。3 層アーキテクチャの基本的なルールは、クライアント層がデータ層と直接通信しないことです。3 層モデルでは、すべての通信が中間層を通過する必要があります。概念的には、3 層アーキテクチャは線形です。ただし、[model-view-controller] MVC アーキテクチャは三角形です。ビューはコントローラーに更新を送信し、コントローラーはモデルを更新し、ビューはモデルから直接更新されます。

出典: http://en.wikipedia.org/wiki/Multitier_architecture#Three-tier_architecture

于 2012-05-24T14:58:14.217 に答える
27

MVCは、UIコードの保守とテストを容易にするために使用されるパターンです。MVCパターンを使用すると、UIコードの大部分を単体テストできます。

これは、MVCパターンをより詳細に説明する優れた記事です:http://martinfowler.com/eaaDev/uiArchs.html

3層アーキテクチャは、まったく異なる理由で使用されるパターンです。アプリケーション全体を意味のある「グループ」(UI、ビジネスロジック、データストレージ)に分割します。

したがって、3層アプリケーションは、アプリケーション内のすべてのコードを指します。MVCパターンは、UI層で使用されるパターンです。

3層アーキテクチャに関する優れた記事は次のとおりです。http://dotnetslackers.com/articles/net/IntroductionTo3TierArchitecture.aspx

詳細については、インターネットを検索して、両方の主題に関するガジリオンの記事を見つけることができます。

于 2012-05-24T15:06:17.153 に答える
14

MVC では: MVC アーキテクチャは三角形です: ビューはコントローラーに更新を送信し、コントローラーはモデルを更新し、ビューはモデルから直接更新されます。

3 層: 3 層アーキテクチャはクライアント層であり、データ層と直接通信することはありません。3 層モデルでは、すべての通信が中間層を通過する必要があります。

于 2013-09-12T12:51:21.240 に答える
2

http://en.wikipedia.org/wiki/Multitier_architecture 簡単に言うと、3層アーキテクチャでは、プレゼンテーション層がデータ層と直接通信することはありません。MVCでは、モデル、ビュー、コントローラー間の関係は三角形です。3つのうち2つは互いに通信できます

于 2012-05-24T15:06:16.200 に答える
2

MVC アーキテクチャ スタイルは、非階層 (三角形) です。

  • View サブシステムが更新を Controller サブシステムに送信する
  • Controller サブシステムは Model サブシステムを更新します
  • View サブシステムは Model サブシステムから直接更新されます

3 層のアーキテクチャ スタイルは階層的 (線形) です。

  • プレゼンテーション層がデータ層と直接通信することはありません (不透明なアーキテクチャ)

  • すべての通信はミドルウェア層を通過する必要があります

于 2020-06-01T11:16:36.083 に答える
2

3 層ソリューションでは、UI はビジネス層から分離されており、ルック アンド フィールに関心のある UI デザイナーが、プログラミングの専門家に任されている重いプログラミングと混同されないようにしています。

このアーキテクチャ(3 層)は、大規模なアプリケーションの作成に多数の人が関与する場合に不可欠です。

于 2016-11-19T04:55:16.670 に答える
1

両者の主な違いは次のとおりです。

3 層アーキテクチャでは、クライアント層がデータ層と直接通信することはありません 3 層モデルでは、すべての通信が中間層を通過する必要があります

MVC アーキテクチャは三角形です。ビューがコントローラーに更新を送信し、コントローラーがモデルを更新し、ビューがモデルから直接更新されます。

于 2015-11-17T21:48:45.530 に答える