[seasar-dotnet:639] Re: QuillのインスタンスモードとDIのタイミングに関して

Kazuya Sugimoto [E-MAIL ADDRESS DELETED]
2007年 11月 14日 (水) 21:31:07 JST


杉本です。

そうですね。Biding属性がS2Containerのコンポーネントをバインドするための
機能なのでそれが1番だと思います。

他の手段としては、BhvImplのインスタンスをあくまでQuillで管理するというので
あれば、BhvImplをインスタンス属性outerとしてS2Containerに自動登録すると
いうのはどうでしょうか?

どこかでIS2Container.InjectDependencyを呼び出す仕組みが必要ですし、
Diconへの登録は避けられずちょっと大げさな感じですが・・


07/11/14 に marron Hnoss<[E-MAIL ADDRESS DELETED]> さんは書きました:
> To:杉本さん
>
> 栗田です。早速の返信ありがとうございます。
>
> 2.についてですが、
>
> 具体的に例を挙げると、
> DBFluteを利用して、自動生成を行いました。その際に、
> BhvImpl関連のコンポーネントの定義をdiconから削除し、
> 変わりにBhvインターフェースに対してImplementation属性を追加しました。
> BhvImplの中にはDaoのGetter/Setterが用意してあります。diconに
> Daoのコンポーネントは登録してある状態となります。
>
> このとき、S2のInit処理を行い、その後QuillでInject処理を行います。
> QuillでInjectしたクラスの中にpublic Bhv bhv;
> というような定義をしておくと、このbhvに関してはインスタンスが取得できますが、
> Daoはnullでした。そして、DaoをBindingした場合はインスタンスを取得できました。
>
> S2のInit処理のときにdiconのコンポーネントのインスタンスを作成しますが、
> Quillのコンポーネントに関してはインスタンスを作成しません。この
> Quillのコンポーネントの中でDaoが使われているので、Getter/Setterを準備しておいても
> QuillのInject処理ではこの部分はDIされません。(Daoのインスタンスに関してはコンテナに存在)
> Bindingに関してはGetComponentをしにいくので取得できるという状態だと思います。
>
> 一つはBindingで対応するという案があります。
> その他で、S2のInit処理のときに、QuillのコンポーネントのDI部分にも対応できるような
> 処理を行いたい。
> おそらく、Quillのコンポーネントを先に作って、これをS2のInit処理のときに認識させれば
> 良いとすると、Quillのコンポーネントもdiconに定義が必要になる?そうするとあまり
> 嬉しくないかなぁ...。というような状態です;この周りをうまくできるような良い方法
> はないかと考えています。
>
> 長文になってしまい申し訳ありません。
>
> 1.に関しても、まとまりましたらまた投稿させていただきます。
>
> よろしくお願いします。
>
> 07/11/14 に Kazuya Sugimoto <[E-MAIL ADDRESS DELETED]> さんは書きました:
> > 栗田さん、こんにちは。
> >
> > 杉本です。
> >
> > まず1についてですが、開発ポリシーからすぐにprototype対応というのは
> > 行えません。ただしそこに固執している分けではないので、要望としてしっかり
> > 受け止め、将来対応するか検討したいと思います。
> >
> > ちなみに「便利な点が多々」ということですので、そのケースを具体的に教えて
> > 頂きましたら、検討する際に助かります。
> >
> > 2についですが、「2.DI処理」というのは、S2Containerの初期化(Init)を指すので
> > しょうか?
> >
> > QuillのBinding属性でS2Containerのコンポーネントを指定した場合でも、
> > S2Containerには影響を及ぼさないので、S2Containerのコンポーネントが
> > 初期化(Init)時にインスタンスが生成されないということはありません。
> > (S2Containerのコンポーネントがsingletonの場合)
> >
> > ちょっと2については意図を汲み取れている自信がないので、私が間違った
> > 理解をしてそうな感じであれば、もう少し説明をお願いします。m(_ _)m
> >
> >
> >
> > 07/11/14 に marron Hnoss< [E-MAIL ADDRESS DELETED]> さんは書きました:
> > > いつもお世話になっております。栗田と申します。
> > >
> > > 現在の仕事でQuillを使用できないかを検討しております。
> > > そこで2点お伺いしたいことがあります。
> > > 1.インスタンスモードがステートレスな業務ロジックを構築することを目的となっている
> > > ためにsingletonのみということですが、protptypeも対応して頂けたら、便利な点が多々
> > > あるため、ありがたいと考えております。
> > >
> > > 2.現在S2ContainerのInit処理を行いQuillのコンポーネント登録およびインスタンス作成
> > > 処理を行うと、
> > >  1.S2のコンポーネント登録
> > >  2.DI処理
> > >  3.Quillのコンポーネント登録
> > >  4.Quill側のインスタンス作成
> > > (間違っていたら申し訳ありません)
> > > というようになっていると考えており、Quillのコンポーネント内でdiconでDIしているような
> > > コンポーネントは、2のDIでは識別されていないためインスタンスが作成されないと思います。
> > > よって、BIndingを使用してGetComponent処理を行っていると思うのですが、
> > > この部分のやり取りを、
> > >  1.S2のコンポーネント登録
> > >  2.Quillのコンポーネント登録
> > >  3.DI処理
> > > というように行えないかと考えております。何か良いアイデアなどがありましたら
> > > よろしくお願い致します。
> > >
> > >
> > > _______________________________________________
> > > seasar-dotnet mailing list
> > > [E-MAIL ADDRESS DELETED]
> > > https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> > >
> > >
> >
> >
> > --
> > Kazuya Sugimoto
> > Microsoft MVP Visual Developer - Solutions Architect
> > http://d.hatena.ne.jp/sugimotokazuya/
> > _______________________________________________
> > seasar-dotnet mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-dotnet
> >
>
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
>


-- 
Kazuya Sugimoto
Microsoft MVP Visual Developer - Solutions Architect
http://d.hatena.ne.jp/sugimotokazuya/


seasar-dotnet メーリングリストの案内