2009-04-27 9 views
2

私はJavaの初心者です。ここで誰かがMartin FowlerのプラグインパターンをJavaで実装する方法を説明できるのであれば、私は感謝します。Java Plugin Pattern

ありがとうございます。

答えて

10

実行する操作のインターフェイスを定義し、そのインターフェイスを実装する実行時にオブジェクトを渡すだけです。したがって、たとえば、ローカル共有メモリーとリモートTCP/IPを介した通信が可能です。インターフェイスを作成し、send()recv()IConnectionとし、LocalConnectionLongDistanceConnectionという2つのクラスに実装します。

次に、通信する必要のある他のクラスがあります。TelephoneCallとしましょう。

は、あなたが

TelephoneCall call = new TelephoneCall(new LongDistanceConnection()); 

行うとコンストラクタの署名があり、

TelephoneCall call = new TelephoneCall(new LocalConnection()); 

は、長距離電話をかけるために行うローカル電話をかけるために

public TelephoneCall(IConnection connect); 
+0

@Charlieマーティン、ありがとう。 –

+1

お寄せいただきありがとうございます。待っているスタッフにお任せください。 –

+0

これはパターンの意図に反しているようです:コンパイルではなく設定時にクラスをリンクします。 letを使って実装された同じ例では、Spring DIはそれを実行します。 – topchef