Astah*で、上流から、下流まで、トレーサビリティをもって開発する方法(3)
http://blog.goo.ne.jp/xmldtp/e/cb7b784d5e73df3d147ec3bc2ae1b6b0
で書いた話の続き。
View,Modelが埋まってきて、とくにViewは画面に分割できた。
のこりは、コントローラーなのだが、ここで問題がある。
今日は、そこから話をはじめる・・・
■コントローラーは、フレームワークに結び付いている
コントローラーは、フレームワークに結び付いています
たとえば、
strutsであれば、コントローラーは、Action「クラス」であり、
Viewのイベント(メソッドに表現されている)と結び付くのは
このActionクラス
cakephpであれば、コントローラーは、Action「メソッド」であり、
Viewのイベント(メソッドに表現されている)と結び付くのは
このコントローラークラスのActionメソッド
というわけで、クラスの単位が違うわけです。
そこで、コントローラーを決める前に、フレームワークを決める必要が
あるわけです。
■フレームワークの決定
これは趣味とか、思惑とか、宗教とか、そんな感じの問題です。
今回は、CakePHPと決めてしまいます。
■コントローラークラスの決定
そして、コントローラーグラスを具体的に決めます。
CakePHPだとしても、1画面1コントローラークラスにして、
作成することも可能です。
また、もっと大きく取って、
コントローラークラスは、ユースケースにすることもできるし、
やる気になれば、1モデル1コントローラーにもできます
→これをすると、bakeでの自動生成がしやすい?
今回は
「1コントローラークラスは、1ユースケース」
とします。
■アクションメソッドの決定
コントローラークラスの中の、アクションメソッドですが、これは、
View(でおきるイベントの)メソッドに対し、
(呼び出される)Actionメソッドはあるはずです。
ただし、次画面表示に関しては、かならずしもメソッドが必要なわけではありません。
1アクションに対し、かならず次の画面が決まっている場合は、
Viewから呼び出されたActionメソッドで、次画面表示を行ってもいいわけです。
そこで、このようにします。
・まず、取り合えず、Viewから呼び出されるActionメソッドを作ります。
こんなかんじ
問3画面の「課題文表示()」は、コントローラーにありません。
これは、View上で表示するだけで、コントローラーに来ないためです。
集計結果表示画面の「結果表示()」もコントローラーにありません。
これは、上述の「Viewから呼び出されたActionメソッドで、次画面表示を行」う
パターンです。
アンケート集計管理の集計開始メソッド内で、集計結果表示の内容をつくってしまうため、
アクションメソッドが作られていません
・画面のActionから、コントローラーを呼び出し、画面を表示するという流れが
滞りなく、抜けがないか確認する
→そのため、画面遷移図等を作ります。
ということで、次は、画面遷移などの話にいきます。