[Seasar-user:1357] Re: (質問) くーすにおけるコントローラ層と永続化層の関係について
Yasuo Higa
higa
2004年 12月 14日 (火) 19:56:31 JST
<[E-MAIL ADDRESS DELETED]> の、
"[Seasar-user:1354] (質問) くーすにおけるコントローラ層と永続化層の関係について" において、
"hasi <[E-MAIL ADDRESS DELETED]>"さんは書きました:
ひがです。
> こんばんわ。橋本です。
>
> 今、ひがさんのくーすに関する日記を参考にしながら
> プロトタイプを作成しているのですが、依存関係について
> 質問があります。
>
> 構成は、S2 + S2Dao + S2Strutsです。
>
> くーすでは、コントローラ層から永続化層を直接呼ばずにロジック層経由で
> 起動すると理解しましたが、直接永続化層を呼ぶのはだめですか?
>
> 具体的には、セレクトボックスのオプション要素をリクエストに設定する
> ときには、HogeDao.getList() をラップした HogeEditLogic.getHogeList() を
> 作成しないといけないのかということなんですけど。。。
>
だめってことはないけど、後から仕様変更が起こって直接Daoを呼ぶだけで
すまなくなったときにプレゼンテーション層にも変更が及びます。
業務ロジックの変更が業務ロジック層だけではなく、プレゼンテーション層にまで
及んでしまうことになるわけです。
絶対に仕様変更など起こらんという部分は、プレゼンテーション層から
Daoを呼び出しても構わないのですが、いちいち後から仕様変更が起こる
だろうかと考えるよりも、かならず業務ロジック層を経由すると決めていたほうが、
プロジェクトは楽に進められる気がします。
どうせ、コーディングの手間はほとんどかからないのですから。
ちょっとした手間を惜しんで後から混乱する可能性を残すよりも、
ちょっとした手間をかけて、変更に強くしたほうが得策だと思うのです。
セレクトボックスに出力するような項目が、いろんな業務から使われるなら、
*Logicではなく、*Support(補助クラス)で処理した方がいいと思います。
補助クラスは、プレゼンテーション層から直接呼び出して構いません。
---
Yasuo Higa <[E-MAIL ADDRESS DELETED]>
INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.
Seasar-user メーリングリストの案内