6

MVC のプッシュ モデルとプル モデルの違いは何ですか?

Struts2、Spring MVC Pull ベースですか?

4

4 に答える 4

2

Struts2、プレイ!などは、MVC パターンのあらゆる種類のプル モデルの実装です。

プッシュ」および「プル」という用語は、ビューとモデルの間で使用されるオブザーバー パターンの実装のタイプを直接参照します。GoF オブザーバーのパターンの説明で述べたように、次のものがあります。

プッシュ モデルと呼ばれる極端な例では、サブジェクトはオブザーバーが望むかどうかにかかわらず、変更に関する詳細情報をオブザーバーに送信します。対極にあるのがプル モデルです。サブジェクトは最小限の通知しか送信せず、オブザーバーはその後、明示的に詳細を要求します。

これは、プッシュ モデルの実装には、View と Model が同じ言語を使用して実装され、同じ環境で実行される必要があることを意味します。この種の実装の良い例は、Javascript シングル ページ アプリケーションです。このアプリケーションでは、View コンポーネントと Model コンポーネントがブラウザ内で実行され、フレームワーク、つまりBackboneが MVC (別名 Observer) メカニズムを提供します。多くの場合、Model コンポーネントはある種のサーバー API とやり取りして、永続化されたデータを永続化および取得します。

一方、プル モデルでは、View コンポーネントと Controller / Model コンポーネントにさまざまなテクノロジを使用して MVC を実装できます。この種の MVC では、Observer パターンの明示的な使用はなく、View は Controller のみと対話します。通常はブラウザーで実行されるビュー コンポーネントは、モデルの更新またはモデルの状態の要求をコントローラー コンポーネントに送信します。通常、リクエストは HTTP プロトコルを使用して実装されます。この種の実装では、View と Controller 間のリンクを自動的に作成できる JSP などの「拡張 HTML スクリプト言語」を使用する必要があります。

于 2015-03-01T11:15:21.270 に答える