[seasar-javadoc:543] Re: S2Container

Koichi Kobayashi koichik @ improvement.jp
2006年 9月 1日 (金) 03:30:25 JST


小林 (koichik) です.

Date:    Mon, 28 Aug 2006 10:12:11 +0900
From:    "Makoto Yonezawa" <stratosphire @ gmail.com>
To:      seasar-javadoc @ ml.seasar.org
Subject: [seasar-javadoc:524] Re: S2Container

> まずは、メソッドコメントをすべて書いたものを添付します。
> 
> 長いですが、確認お願いします。

ありがとうございました.
こちらについては Jundo さんのレスにコメントします.
個人的にはいい感じになったと思います.

以下はクラスコメントについて.


> それとクラスコメントですが、
> もう一度メソッドを整理すると、
> 
> コンポーネントを取得
>     getComponent
> コンポーネントを検索
>     findComponents
>     findAllComponents
>     findLocalComponents
> コンポーネント定義を取得
>     getComponentDefSize
>     getComponentDef
> コンポーネント定義を検索
>     findComponentDefs
>     findAllComponentDefs
>     findLocalComponentDefs
>     hasComponentDef
> コンポーネントの登録
>     register

ここまでと

> DIする(依存性の注入)=メソッドの実行?
>     injectDependency

が DI コンテナとしての基本的な機能というか,コンポーネントを
扱うためのインタフェースですね.
そして,

> コンテナのお世話
>     hasDescendant
>     getDescendant
>     registerDescendant
>     include
>     getChildSize
>     getChild
>     getParentSize
>     getParent
>     addParent
>     init
>     destroy
>     getRoot
>     setRoot
> 名前空間について
>     getNamespace
>     setNamespace
>     getPath
>     setPath
> 外部コンテキストについて
>     getExternalContext
>     setExternalContext
>     getExternalContextComponentDefRegister
>     setExternalContextComponentDefRegister
> クラスローダー
>     getClassLoader
>     setClassLoader
> マップ
>     registerMap

この辺は全部ひっくるめて「コンテナのお世話」でいいかも.
コンポーネントではなく,コンテナ自身あるいはコンテナの階層を
扱うためのインタフェースです.

もし分けるなら,階層に関わるかどうかで

コンテナ自身のお世話
>     getNamespace
>     setNamespace
>     getPath
>     setPath
>     getClassLoader
>     setClassLoader
>     init
>     destroy

コンテナ階層のお世話
>     hasDescendant
>     getDescendant
>     registerDescendant
>     include
>     getChildSize
>     getChild
>     getParentSize
>     getParent
>     addParent
>     getRoot
>     setRoot
>     registerMap

というのもありかと.
init / destroy はライフサイクルとして別にしてもいいかも.

なお,setPath / getPath は名前空間とは関係なくて,dicon ファイルなど,
コンテナの定義を記述したリソースのパスを設定したり取得するものです.

クラスコメントに記述する内容も,コンテナがコンポーネントを
扱う話と,コンテナ階層の話を大きな柱とするのがいいかも.
なので,

> 詳細は、上のものから、すこし詳細を説明
> ・コンポーネントの管理
> ・コンテナの管理

の「コンテナの管理」で階層のことまで説明するのがよいかと.
それを踏まえておけば,

> ・DI

ここで DI 対象のコンポーネントがどのように決まるかの説明も
しやすくていいかも.

> あとは、
> ・ライフサイクル
> ・インジェクションの種類
> ・コンテナの構造>>>階層化されていることについて
> 
> こんな骨組み?

これらは上の方に含まれちゃうような.

> うーん、まだどうかいていいやら・・・
> すいません、助言のほどよろしくお願いしますm__m

同じくどう書いてイイやら悩んでしまいます.(^^;
ともあれ (JW),いきなり大きく考えずに,少しずつ書きながら
みんなの意見を集めるということでどうでしょう?
# 超他力本願寺 (^^;

クラスコメントの構成について,あまり詳細に考え過ぎると
なかなか手が動かなくなりそうなので,詳細は後回しにして
いいんじゃないかと思います.

そんなわけで (どんなわけで?),まずはコンテナの基本機能として,
コンポーネントを取り扱っているところから書き始めてみては
いかがでしょうか.

頑張れ〜.


-- 
<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 メーリングリストの案内