Tociyuki::Diary RSSフィード

tociyuki による Perl・Ruby・C++・C で書き散らしたコードを中心に、日常雑記も混在 : B  F  twitter  GitHub  CPAN  本館  公開鍵
 | 

2005年06月23日

[][]による依存性の注入のデモ

いまさらながらですが、依存性の注入(Dependency Injection: 略してDI)の動作をキーボードを打つ指で実感したかったのでシンプルなデモをPerlで作ってみました。JavaにはSpring、RubyにはNeedleやCoplandなどのDIフレームワークがありますけど、Perlでは目立たないなと思って書いてみました。

DIでのコンポーネント生成は、has-aの関係にある複数のクラスのインスタンス群をDIコンテナが作りあげ、has-a関係をプロパティへの注入記述に従って組み立てます。そのまんまの動作をさせることにします。

デモですから、構成はシンプルにしたい。そこで、セッター・インジェクションに限定します。さらに注入できるのは、コンポーネントとPerlのオブジェクトやスカラーやリファレンスに限定します。前者の場合は、クラス名からインスタンスを新しく生成し、後者の場合は単に値をセットするだけです。注入のバインディングは、Perlのハッシュに直接記述することにしました。またインスタンス間が循環参照にならないことを条件にしています。なお、循環参照をチェックしていないので、このデモで記述すると無限再帰呼び出しに陥ります。

デモ自体で何をやらせるかですが、メソッドの引数をjoinして出力するというありがちなデモにしておきました。考えるの面倒ですし。

http://tociyuki.flop.jp/archive/didemo.pl

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/tociyuki/20050623/1119539570
 |