torutkのブログ

ソフトウェア・エンジニアのブログ

Model-View-Presenterパターン

ポストMVCモデルとか、修正MVCモデルとか言われることもあるMVPパターンについて、見よう見まねでModel-View-PresenterパターンでGUIプログラムを実装してみました。

ViewがModel・Presenterなしに単独で動くので、見栄え先行でプログラミングしていくときにはよさそうです。Presenterは油断すると複雑怪奇になってしまうので、イベントハンドラーと表示のためのロジックまでに限定し、それ以外は他のクラスにどんどん出した方がよいようです。

PresenterとViewの間はinterfaceを導入して分離した方がよいと思ってましたが、参考資料を見ると、interfaceなしにPresenterが直接Viewの各フィールドにアクセスしています。interfaceを入れても、表示周りの変更ですぐにinterfaceが変化してしまうので、ならば参考資料のようにinterfaceなしにPresenterがViewにアクセスするのも一つの手です。

ただ、SwingとMVPは相性がすこしよろしくない感じがあります。Swingは深い継承で数多くのメソッド・フィールドを持つので、それにさらにinterfaceをかぶせると複雑さが増し、バッティングが起きたりします。