[Seasar-user:1357] Re: (質問) くーすにおけるコントローラ層と永続化層の関係について

Yasuo Higa higa
2005年 4月 6日 (水) 01:08:32 JST


<20041214192224.1884.HASIMOTO @ anabuki-acs.co.jp> の、
   "[Seasar-user:1354] (質問) くーすにおけるコントローラ層と永続化層の関係について" において、
   "hasi <hasimoto @ anabuki-acs.co.jp>"さんは書きました:

ひがです。

> こんばんわ。橋本です。
> 
> 今、ひがさんのくーすに関する日記を参考にしながら
> プロトタイプを作成しているのですが、依存関係について
> 質問があります。
> 
> 構成は、S2 + S2Dao + S2Strutsです。
> 
> くーすでは、コントローラ層から永続化層を直接呼ばずにロジック層経由で
> 起動すると理解しましたが、直接永続化層を呼ぶのはだめですか?
> 
> 具体的には、セレクトボックスのオプション要素をリクエストに設定する
> ときには、HogeDao.getList() をラップした HogeEditLogic.getHogeList() を
> 作成しないといけないのかということなんですけど。。。
> 
だめってことはないけど、後から仕様変更が起こって直接Daoを呼ぶだけで
すまなくなったときにプレゼンテーション層にも変更が及びます。
業務ロジックの変更が業務ロジック層だけではなく、プレゼンテーション層にまで
及んでしまうことになるわけです。

絶対に仕様変更など起こらんという部分は、プレゼンテーション層から
Daoを呼び出しても構わないのですが、いちいち後から仕様変更が起こる
だろうかと考えるよりも、かならず業務ロジック層を経由すると決めていたほうが、
プロジェクトは楽に進められる気がします。
どうせ、コーディングの手間はほとんどかからないのですから。

ちょっとした手間を惜しんで後から混乱する可能性を残すよりも、
ちょっとした手間をかけて、変更に強くしたほうが得策だと思うのです。

セレクトボックスに出力するような項目が、いろんな業務から使われるなら、
*Logicではなく、*Support(補助クラス)で処理した方がいいと思います。
補助クラスは、プレゼンテーション層から直接呼び出して構いません。
---
Yasuo Higa <higa @ isid.co.jp>
INFORMATION SERVICES INTERNATIONAL-DENTSU,LTD.



Seasar-user メーリングリストの案内