MMVC

MMVCはここの図6、図7にあたる
http://www.sra.co.jp/people/nisinaka/Jun4Java/MVC/
こちらでも書かれてるように、ModelをApplicationModelとDomainModelに分けるMVC
http://careless-adventurers.net/?date=20071015#p04

注意点は、以下のFowler記事を読むと、Application Modelには他のオブジェクトとの協調(サービス)に必要なことを入れ、主なロジックやデータソース関係はDomain Modelに入れることのようだ。
Domain Modelにはデータソースだけでなくロジックも組み込め、という。
データと振る舞いをまとめるオブジェクト指向に反していて、コストが増えるというのが理由か。
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?AnemicDomainModel

PluggableMVCとMMVC

この2つが同じレベルで出てくるのは、PMVCがインテーフェースによって、MMVCがはpplicationModelによって、
View・ControllerとModelが疎結合になっっている点で似ているからだと思う。
そして、PMVCのモデルをMMVCのように分割、MMVCのApplicationModelにインターフェースを備えれば、両者は同じ構造になる。
http://careless-adventurers.net/?date=20071025
逆にいうと

というのが両者の違いなのだと思う。

なるべく軽くシンプルにいこう

責務の分割は簡単で仕様的にも分かりやすくなるので、MMVCの方が少し軽量な気がする。それほど大きくないアプリであればインターフェースを使わなくていいだろうし。


http://osiris.sunderland.ac.uk/~cs0her/COM379%20Lectures/Lecture19.pdf
この資料では、MVCやVisualProxyパターンは大変だから、シンプルにやるのが第一と言っているし。
ただ3レイヤーは使うようにとのこと。多分プレゼンテーション層(View)とドメイン層Model)、その間にある仲介層(Contorller、外部入力の仲介もする)は分けて考えた方がいいよ、ということだろう。

分離についてのシンプルな記事
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?PresentationDomainSeparation