-IoCコンテナAPI

AOPは動きがあるので、IoCのAPIを私の主観でユーザーが触れそうなモノのみリストして、重要度をつけてみました。

  • org.seasar.framework.container
    • [A]S2Container
    • [B]ComponentDef
    • [B]ArgDef
    • [B]PropertyDef
    • [B]MethodDef
    • [B]InitMethodDef
    • [B]DestroyMethodDef
    • [B]AspectDef
    • [C]ArgDefAware
    • [C]PropertyDefAware
    • [C]InitMethodDefAware
    • [C]DestroyMethodDefAware
    • [C]AspectDefAware
  • org.seasar.framework.factory
    • [A]S2ContainerFactory
  • org.seasar.framework.deployer
    • [C]ComponentDeployer
    • [C]ComponentDeployerFactory
  • org.seasar.framework.beans
    • [C]BeanDesc
    • [C]PropertyDesc
  • org.seasar.framework.beans.factory
    • [C]BeanDescFactory

  • org.seasar.framework.container.impl
    • [B]S2ContainerImpl
    • [B]ComponentDefImpl
    • [B]ArgDefImpl
    • [B]PropertyDefImpl
    • [B]InitMethodDefImpl
    • [B]DestroyMethodDefImpl
    • [B]AspectDefImpl
    • [C]SimpleComponentDef
    • [C]TooManyRegistrationComponentDef


基本的に、[A]だけでいいのですが、それだとインターフェイス2つで終わってしまうので、あえてテストケースで使いそうな[B]、プラグインを作るにあたって、もしかすると(ほとんど可能性ないと思いますが)使いそうなものが[C]でしょうか。テストケースの[B]も、S2Unitがあるから、いらんのですけど。。。org.seasar.framework.container.implは実装パッケージですが、テストケースという意味ではファクトリーが無いのでAPIとせざるを得ないか?あえてこのimplをAPIとして整理するなら、ファクトリを作って、

  • org.seasar.framework.container.factory
    • [B]ComponentDefFactory
    • [B]ArgDefFactory
    • [B]PropertyDefFactory
    • [B]InitMethodDefFactory
    • [B]DestroyMethodDefFactory
    • [B]AspectDefFactory
  • org.seasar.framework.container
    • [C]TooManyRegistrationComponentDef(インターフェイス化)

と提案。あたりまえにSeasar2APIはインターフェイス2個(+例外クラス)と言い切ってしまうのは期待に答えていないかなと。。。