MVCアーキテクチャ

MVCアーキテクチャって基本の基本っぽいけど、今まで、概念としてちょっと曖昧に捕らえてたので、改めて勉強してみた。see wikipedia:Model_View_Controller


  1. ユーザは、viewにあるボタンAを押す
  2. viewは、「ボタンAが押されたよ」とcontrollerに通知する
  3. controllerは、「Aが指示されたよ」とmodelに通知する
  4. modelは、内部のデータを編集する。必要に応じてDBからデータを引っ張ったり、更新したりする。
  5. viewは、modelから必要な情報を取り出す。
  6. ユーザは、次の画面を見る。
  • viewとcontrollerには状態っていう概念は不要だけど、modelには状態っていう概念は必要、と言えそう。
  • (先進的ではない)Webアプリケーションはステートレス。ステートレスな処理系の場合、modelはcontrollerから呼び出されると一時的に利用するインスタンスを生成する、みたいなイメージかな。
  • 5.において、主体はviewだと考えてよさそう。
  • 図の矢印は、主体から通知対象への矢として引いてます。
    • DBからアプリケーションへ通知は、相当短いライフサイクルなはずなので、この粒度では通知しない、と捉えてみた。