[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 メーリングリストの案内