« 自動売買玉砕モード | メイン | MS Office2007 Beta2TRのアンインストール方法 »

[Delphi] Dependency Injection?

Javaなんかで、DI(Dependency Injection)っつー、
概念がありまして、
妙にもてはやらされていたころが、あったんですが、
(今も?)
これがなんなのか、よくわかってませんでした。

この前、
『Dependency Injection の基本的なアイディア - いやなブログ』
を見て、氷解。
そうか、依存性注入ってそういうことか!

Javaとかだと、フレームワークとか使うみたいですが、
そんなんなしにして、
手っ取り早くDelphiでもできんのかなーと思っておりました。

interfaceを使うのもなーってとき。
小規模な時。
手っ取り早い方法を書いてみたい。
(interface版は、また後で)

Delphiなら、メソッドポインタ(TNotifyEventやら)を作って、
依存性を外部におけばよい。
それだけじゃん。

例えば、THogeってオブジェクトがあって、
ログをとりたいが、ログ取り用の Logger オブジェクトは一応あるんだが、
それに依存させたくないなーって、場合。

※HogeOnLog;が、間違っていたので修正orz

おー、簡単にできるじゃないか。
っていうか、Delphi使いなら、誰でも知っている、
あたり前田のクラッカーなテクニック。

これで、使う側でメソッドポインタを定義して、いろいろ指定してやれば、
他のユニットに依存しなくてすむ。

まー、もっとも、上のページの Ruby の例のような、
柔軟にはいきませんけど。
(あれは、型なし言語だからできる技だよな)

カテゴリ: [ Delphi ]

コメント (3)

Ko-Ta:

困った時はやっぱり関数ポインタだよね!

uox:

関数ポインタで困ったらどうしたらいいですか!

TOBY:

メッッソドポインタ!メッッソドポインタ!

何は無くともメッソd(ry

・・・困ったときは、interface使えばいけそうですが、interface版も、そのうち書くかもかかないかも

コメントを投稿

Twitter(今何してる?)

プロフィール

あわせて読みたい

あわせて読みたいブログパーツ

人気エントリー

About

2007年04月15日 13:09に投稿されたエントリーのページです。

ひとつ前の投稿は「[自動売買] 自動売買玉砕モード」です。

次の投稿は「[ソフトウェア] MS Office2007 Beta2TRのアンインストール方法」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。