[Seasar-user:2125] Re: injectDependencyについて
Koichi Kobayashi
koichik
2005年 6月 7日 (火) 03:10:24 JST
小林 (koichik) です.
On Tue, 07 Jun 2005 01:43:48 +0900
Masataka Kurihara <[E-MAIL ADDRESS DELETED]> wrote:
> > injectDependency() は instance="outer" として「定義された」
> > コンポーネントに DI するものということで,ひがさんから
> > それ以外の用途は考えていないと説明があったのですが...
> > その仕様を変更しようということでしょうか?
>
> いや、全然。仕様は変更してくれなくていいです。
むむ,そうすると [Seasar-user:2108] の内容を読み違えていたか...
> > コンテナに定義されていないコンポーネントに対する DI をコンテナが
> > 行うという発想自体に私は違和感を憶えるのですが...
> > それはコンテナの責務なのでしょうか?
>
> コンテナに責務も義理もないけど、そういう利用者が
> いるということです。で、その変更は、privateや
> finalや、ファクトリをちょっと変更してくれればよくて、
最初の方で提案のあった final を外す・private を protected に
といったあたりは私のワークスペース上では修正済みです.
一通り完結したらコミットします.
> 先の例外がでるタイミングを変えるのがNGなら、変えなく
> てもできることです。私がhasComponent()でテストすることが
> 単にそのとき思いつかなかっただけですから。
> NullComponentDefは、その後、ComponentDeployerFactory
> を経由して、そこをカスタマイズしていれば動作するし、
> していなければ既存と同じ例外がでるようにしておけば
> よいのです。今のS2の見え方は全然変らないんだけど、
> 特殊な用途を考えたときに、それが満たせるフレームワーク
> にもなってくれていると、ごく少数かもしれませんが、ニッチ
> なニーズも埋められるということです。
ここ (の前半),ちょっと理解できませんでした.
NullComponentDef を導入してしまうと,S2Container#getComponentDef() の
仕様が現在と変わってしまうということを [Seasar-user:2102] で
書いているのですが?
# 正確に言うと,コンポーネントが見つからない場合に
# S2Container#getComponentDef() が NullComponentDef を返すように
# すると現在の仕様と異なってしまうということ.
# これは S2ContainerImpl なのでカスタマイズされたコードの話じゃないよね?
「今のS2の見え方は全然変らない」のなら反対しない (かもしれない)
のですが,そうじゃないからまずいのではないかという話なのですが...
やっぱり読み違えてる??
現在の S2Container#getComponentDef() は,該当するコンポーネント
定義が存在しない場合例外をスローします.これは S2 内の実装の話では
なくて,S2Containert というインタフェースの仕様です.
まさたかさんの [Seasar-user:2108] の内容はそれを変更して
NullComponentDef を返すというもので,「今のS2の見え方は全然変らない」
というものではないように思えます.
私には,まさたかさんは S2Container#getComponentDef() を S2 内の
実装として使われているに過ぎなくて,パブリックなインタフェースだと
考えていないように見えるのですが...
私がどこか勘違いしているでしょうか?
--
<signature>
<name>Koichi Kobayashi</name>
<e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
</signature>
Seasar-user メーリングリストの案内