アクションを2度実行

http://d.hatena.ne.jp/hacking_dubby/20050829
http://d.hatena.ne.jp/hawkring/20050817/1124273703
(前にもリンク張ったから自動でトラックバックされたけど、2度目もトラックバックされちゃうのかな)


まだこの問題に遭遇しないんだけど、規模が大きくなってきたら同じようなことを思うんだろうか。。


ひとつのクラスの中に2種類の状態と処理を抱え込んだらどうして不都合なんだろう。
沢山の関連性のある処理をまとめたものが「クラス」じゃないのかなぁ。



ちょっと頭の中を整理。
フォームにデフォルトのデータを表示 → 編集後の確認画面を表示 → 登録完了画面を表示

  • 表示
    • 表示用のフィルタ ※フィルタ1
    • データを表示する処理

ここで編集の処理を表示のクラスとくっつける場合。

  • 編集
    • 編集用のフィルタ ※フィルタ2
    • 表示用のフィルタ ※フィルタ1
    • セッションにリクエストデータを登録する処理
    • データを表示する処理($this->execute()などで同クラスの別メソッドを呼ぶか、アクションフォワード)


なんだかMapleのやってる処理と自分で作った処理が根本的に違う気がしてきた。
私が作ってるのは同じクラスのアクションを使うからと言ってフィルタも同じとは限らないしなぁ。


例えばこの次の処理として

  • 登録
    • 登録用フィルタ ※フィルタ3
    • 表示用フィルタ ※フィルタ1
    • DBにデータを登録する処理
    • データを表示する処理


となるけど、フィルタ2とフィルタ3は同じでもいいし、フィルタ3が複数でもいい。
これらが全て同じクラスで行われる。もちろん分けてもいい。



どの関数が何をしてるかっていうのは分かるようなメソッド名にすればいいし、設定ファイルを見ても分かる。



でもみんなが悩んでるってことは、もっと規模が大きくなれば把握できなくなるってことだよなー。
悩むような規模まで作れてないっていうのが悩みか・・。