[seasar-javadoc:346] Re: ComponentDeployer

Koichi Kobayashi koichik @ improvement.jp
2006年 7月 12日 (水) 01:00:09 JST


小林 (koichik) です.

Date:    Mon, 10 Jul 2006 11:53:30 +0900
From:    Hideaki Suzuki <suzuki @ uinet.or.jp>
To:      seasar-javadoc @ ml.seasar.org
Subject: [seasar-javadoc:336] Re: ComponentDeployer

> > 添付してもらったらサイズ制限に引っかかって保留になってましたとさ.(^^;
> > 悩ましいですねー.
> なるほど、そうでしたか。では、ためしに、圧縮して送ってみます。

ありがとうございます,とてもよいです♪

> インターフェースとしての抽象的表現と、具体的に書くことによる理解し易さ
> のバランスによく悩むんですが、インターフェース関係の見出しの説明は、
> やっぱりインターフェースそのものの役割を書くべきですね。

そうですね.
そのうえで,主要な実装についての捕捉があるのは分かりやすくて
いいのではないかと.
特に dicon の DTD で決まっているものなどは広義では仕様ですし.

さて.
今更気づいたのですが,一覧表が微妙です.

>  * {@link InstanceDef コンポーネントインスタンス定義}と有効なメソッドの対応表を以下に示します。

ということですが,この「有効なメソッド」がちょっと怪しい.
例えば singleton の場合に injectDependency(Object) を呼び出すと
例外が吹っ飛んでくるということで「有効なメソッド」でないことは
明白ですが,singleton 以外で destroy メソッドを呼び出しても
例外が飛ぶわけではなく,単に何も起こりません.コンポーネントの
destroy メソッドが呼び出されないという点では「有効なメソッド」
とは言えないかもしれませんが,先のケースとは微妙に異なります.
さらに,singleton でも outer でもないケースで init() は
例外が起きないだけでなく,アスペクトを適用するためにクラスを
エンハンスするなんてことをやったりします.コンポーネントの
init メソッドは呼び出されませんが,ComponentDeployer としての
初期化は行われます.

そんなわけで (どんなわけで?),一覧表を再考する必要がありますね.
○×に加えて△を加えてみるとか注釈を加えるとか.
あと,メソッドの順番は名前順よりライフサイクルに合わせて

init()
deploy()
injectDependency()
destroy()

がいいかなぁ.


> p.s.1
> > コミットする前に気づかなくてごめんなさい>鈴木さん
> あ、ComponentDeployer ですか?
> これはまだコミットしていないのでSafeです ^^;;;  (他のソースですか?  --;;)

ぐはぁっ,勘違い... 心より恥じる.



-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"koichik @ improvement.jp"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



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