php 構造 MVCと3層またはN層アーキテクチャでウェブサイトを開発することの違いは何ですか?



ファンクション層 役割 (1)

MVCと3層またはN層アーキテクチャでウェブサイトを開発することの違いは何ですか?

どちらがいいですか? 長所と短所は何ですか?


これらはほぼ同じですが、3層ではトップレベル(プレゼンテーション)が最下層と直接通信することはありません(データの永続性)。

モデルビューコントローラでは、理論的に、モデルは、ビューが更新されるようにビューが変更されたことを '通知'することになっています。 しかし、これはステートレスであるため、通常、ほとんどのWebアプリケーションでは問題になりません。 よく知られているPHP MVCアーキテクチャーに、モデルと直接やり取りするビューがあるかどうかは分かりませんが、そうでない場合は実際には3層であると言うのは正しいでしょう。

ウィキペディアは言う:

一見すると、3つの層はMVC(Model View Controller)の概念と似ているかもしれません。 しかし、位相的にはそれらは異なっている。 3層アーキテクチャの基本的なルールは、クライアント層がデータ層と直接通信することがないことです。 3層モデルではすべての通信がミドルウェア層を通過する必要があります。 概念的には、3層アーキテクチャは線形です。 ただし、MVCアーキテクチャは三角形です。ビューはコントローラに更新を送信し、コントローラはモデルを更新し、ビューはモデルから直接更新されます。

出典: Wikipedia:マルチティアアーキテクチャ





3-tier