2

「脂肪モデル、シンコントローラ」という言葉を聞いたことがありますが、それが意味することを理解していると思います。 Zend Quickstart Guideで作業している間に、私はテーブルデータゲートウェイパターンを見つけました。テーブルデータゲートウェイとモデル

このデザインパターンは、MVCスタックに4番目のコンポーネントを提唱しているようです。それは「脂肪モデル」から「薄型モデル、薄いコントローラ、太いTableDataGateway」に移行しています。このデザインパターンを私が理解してから、ModelはTableDataGatewayに格納されているデータのためのストレージメカニズムになります。

私はデータソースを抽象化してTable Data Gatewayのデザインパターンの利点を理解しています。私の質問はデザインパターンではなく、MVCスタックにどのように適合するかです。

P.S.私は良い言葉に私の質問を得るのに少し苦労している。誰かがこれを編集してより明確にしたり、提案したいと思ったら私は開いています!

答えて

8

MVCスキーマは以下のように更新することができる:

+------------+ 
| Controller | 
+------------+ 
    ^^
    | |   +------------+  +-------------+ 
    | |-------> | Model  | <--> | Data access | 
    | |   +------------+  +-------------+ 
    | | 
    v v 
+------------+ 
| View  | 
+------------+ 

データアクセス部がちょうど(データゲートウェイ設計パターンに基づいて、または任意の他のパタ​​ーン/技術)抽象の他のレベルでありますアプリケーションの永続レベルを変更する必要がある場合(つまり、MySQLからOracleに移行する場合)、簡単に置き換えることができる永続レベル(テキストファイル、データベースなど)との特定の部分です。

このように、書き直す必要があるのはデータアクセスレベルだけで、残りのアプリケーションはまだ動作しています。モデルのタスクは、コントローラまたはビューのいずれかによって使用できる方法でデータをフォーマットすることになりました。

これは、最高または最も完全な回答ではないかもしれませんが、少なくとも最初です。

+1

私が感じる別のパターンは、ViewModelパターンです(http://techportal.ibuildings.com/2010/11/02/creative-mvc-meet-the-viewmodel-pattern/を参照)。 –

関連する問題