2017-01-29 5 views
1

現時点では、Javaの強い依存関係の場合にSpringがどのように役立つかを研究しています。異なるコードについて言及すると、私はいつも以下のようなスキーマを見つけました。しかし、私はこの行の目的を理解していませんインターフェイスとの強い依存関係をどのように破壊しますか?

private IWriter writer; 

なぜクラスのフィールドとして書かれていますか?

public class Order { 
    private IWriter writer; 

    public IWriter getWriter() { 
     return writer; 
    } 
    public void setWriter(IWriter writer) { 
     this.writer = writer; 
    } 
    public void write() { 
     this.writer.write(this.getState()); } 
    } 
} 
+0

私は、あなたも依存性注入を使用することができます – Salman

+0

私はあなたの問題を完全に理解しているとは思わない。何故なの?どのように書きますか? – Marvin

答えて

0

それを読むことができます依存性の注入

です。実装の知識がなくても呼び出すことのできる純粋なメソッドがあります。この分離は、実際の実装のクラスを知る必要はないことを意味します。

IWriter、つまりJsonWriter、XMLWriterなどの複数の実装が存在する可能性がありますが、Orderはそれらについて知る必要はありません。 springを使用することで、設定を通じて任意の実装を提供できます。オーダーはIWriterとそのメソッドについて知っているだけです。それらを呼び出すと、提供されている実装が呼び出されます。

0

Inverse Of Control pattern;インターフェイスを使用して、動的な実装を選択する

関連する問題