PluggableMVC

まずPMVC
http://www.sra.co.jp/people/aoki/SuperAsciiJ/SAscii06.html
UML的に表されて参考になるとこ
http://careless-adventurers.net/?date=20071025


PluggableはModelのインターフェースをMとして挟んでMVCを構成、そのインターフェースモデル
の後ろから実体を挿すということのよう。

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