[Seasar-user:11236] Re: 【DBFlute】BehaviorとDAOの関係について

koyak [E-MAIL ADDRESS DELETED]
2007年 10月 24日 (水) 10:19:38 JST


佐藤(聖)さん

小谷と申します。

>DAOの生成は誰の責務になりますか?
Seasar(S2Container)、ということになると思います。
BehaviorにDAOのsetterが用意されているのは
基本的にはインジェクション(DIコンテナが自動的にインスタンスをセットする)
するためです。
(テストなどで何か臨時のDao実装クラスを作ってセットすることはあるかもしれませんが)

DBFluteでソースコードを自動生成すると
dbflute.dicon上にBehavior,DAOコンポーネントが記述されるため、
BehaviorへのDAOのインジェクションが行なわれます。

もっと抽象的なレベルでのご質問でしたらごめんなさい。

07/10/24 に Kiyoshi Sato<[E-MAIL ADDRESS DELETED]> さんは書きました:
> 佐藤(聖)と申します。
>
> 大変に初歩的な質問でお恥ずかしいですが、
> DBFluteのBehaviorとS2DAO(DBFlute的にはBsDAO、ExDAOパッケージ)
> の関係でご質問です。
> (この後実際にSample等を追って確認するつもりなのですが、ちょっと
> だけショートカットしようとしてまして・・・)
>
> DBFluteの役割図、及びS2DAOの役割からすると
>
> S2DAO→DBとのアクセスの抽象化
> Entity→Query結果(というより単にDomainデータ)の抽象化
> ConditionBean→Queryの拡張
> Behavior→DAOとのFacade
>
> と、雑ですが思っています。
>
> BehaviorとDAO、Entity、ConditionBeanは一組のセットだと思うのですが、
> この際DAOLayer全体の利用オブジェクトから見たときに
> DAOの生成は誰の責務になりますか?
> (Behavior or 利用オブジェクトの2択だと思っている)
>
> イメージだけだとBehaviorが生成も隠蔽(と書くと言葉悪いですが)している
> ように考えていましたが、BehaviorにはDAOをセットするメソッドもあり、
> 悩んでいます。(そして、ちょっと真面目にSampleソースを追う予定です)
>
> 多分ハイ、イイエというレベルの質問だと思うのですが、
> ご教示いただければ助かります。
>
> # ちなみにSeasar2(DI+AOP+α)としては使ってなく、DBFlute=S2DAOだけ
> # 使ってたりします。機会があればいろいろフル適用してみたい・・・。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>



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