Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

MVCのつぎは・・・

5,240 views

Published on

MVC以外のアーキテクチャを列挙

  • Be the first to comment

MVCのつぎは・・・

  1. 1. MVCの次は・・・ ID:NetPenguin Mail:keita.iseki@gmail.com http://d.hatena.ne.jp/NetPenguin/
  2. 2. MVC • システム全体をモデル/ビュー/コントロー ラに分割 • M=システムの本質的な部分を表現する サービス層やドメインモデルなど • V=システムとユーザのインタフェース • C=MとVをつなぐ部分 入力を適切な形でMに伝える
  3. 3. 何が問題? • もともとのMVCと解釈が違ってきている 開発する上では問題ではない。 そもそも何を満たしたらMVCなのか? 定義が明確ではない • システム全体をM/V/Cの三つに分けるた め、システムが大きくなると扱いづらい
  4. 4. MVC以外のアーキテクチャ • PAC • RecursiveMVC(=HMVC) • MMVC MVC以外にもあるんだよ! • Doc/View というのを伝えたかった
  5. 5. PAC • エージェントと呼ばれる概念 – エージェントは複数存在 – 親子関係を持つ ・親画面と子画面をそれぞれエージェントとする ・画面内でも各区画をエージェントとする など、分割統治により複雑性を抑える(たぶん) • エージェントはPACで構成される – Presentation – Abstraction – Control
  6. 6. PAC-エージェント エージェント エージェント エージェント エージェント エージェント
  7. 7. PAC-Presentation • エージェントの内容を表現する(UI) • Controlとだけやり取りする
  8. 8. PAC-Abstraction • エージェントのデータを管理する • Controlとだけやり取りする
  9. 9. PAC-Control • 他のエージェントとやり取りする • PresentationとAbstractionを仲立ちする P C A エージェント P C A エージェント
  10. 10. RecursiveMVC • MVCを階層化して扱う • PACを変形した状態
  11. 11. MMVC • MVCの改良 調査不足により詳細不明 • モデルが二種類 – Domain Model – Application Model GUIをカプセル化してDomain Modelに適合 するようにしたもの (ViewHelperみたなもの?)
  12. 12. Doc/View • なつかしのMFCで使われていた • データとビューに分離 • Docの変更をViewに通知 Viewを実現するために必要なDocを 考えるあたりがMVCと違う。Viewが主体。
  13. 13. 参考URL • http://d.hatena.ne.jp/noopable/20090209/1234125202 • http://c2.com/cgi/wiki?RecursiveModelViewController • http://c2.com/cgi/wiki?ModelModelViewController • http://www.cue.im.dendai.ac.jp/~masuda/mvc/index.html • http://www.jac-net.com/~tarzan/smalltalkers/mvc/mvc.html

×