上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

役に立ったらぽちっとよろしく。 人気ブログランキングへ

車輪の再発明? [2008/03/02 (日)]

直前の記事でDIとSLそれぞれの利点欠点について書いた。…で!!自己流DIな方法を考え付いた。…同じような物を二度作る車輪の再発明、いやいや、私の車輪はちょっと違う!!何しろ天才だから…と空騒ぎし…だいたい数日で同じ物が見つかったり完全な勘違いに気付く…これがおいらの開発…いや人生のお決まりのパターン…笑。今回もなんとなくそんな気はするが取り敢えず天狗になって書いてみる。

  • まず、クラス<C>とそのオブジェクトを作るファクトリFactory<C>のペアをコレクションで管理するクラスContainerを作る。
  • ファクトリは適宜サブクラス化され、オブジェクト生成メソッドがオーバライドされているものとする。
  • Containerは指定されたクラスのオブジェクトを要求されると対応するFactoryを探し出して、引数として自分自身を渡しFactoryのオブジェクト生成メソッドを実行する。
  • Factoryは引数として受け取ったContainerから再帰的に必要なクラスのオブジェクトを得ていく。
  • そしてそれらのオブジェクトを組み合せて自身の要求されたクラスのオブジェクトを生成する。

問題となるのはFactoryの実装コストだけども、これは予めSetterAutoWireFactoryとかを作っておけば、少なくとも普通のDIと同じ事はできる。加えてオブジェクトを要求された際の動作はSL的に柔軟になる。で、Factory側からその生成したオブジェクトに依存性を注入する方向で処理が進みDIと同じだから、SLの場合に問題となる各クラスが特定のSLに依存する問題もなくなる。

ふ~ん今の所アイディアだけで組んでない…ていうのも実はDIとかについて散々書いてるけど実はあまりそれ関連のフレームワークを詳しく調べて無かったり…。なので似たようなのがあったりする気もするし…勘違いかもしれないし…しばらく寝かす事にする。なこんなで備忘録でした。

スポンサーサイト

役に立ったらぽちっとよろしく。 人気ブログランキングへ

コメント
この記事へのコメント
コメントを投稿する

トラックバック
この記事のトラックバックURL
この記事へのトラックバック
Copyright © ふらふら技術者の日記 All Rights Reserved.
Powered by FC2 Blog
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。