12

関係なく実装クラスを作成する必要がある場合、疎結合はどのようにインターフェイスに関連付けられますか? 実装クラスは、インターフェイスで定義されたすべてのメソッドを実装する必要があります。これが結合を失うことをどのように可能にするのか理解できませんか? 私はオブジェクト指向プログラミングとソフトウェア設計が初めてなので、このトピックに光を当てることができれば非常に役に立ちます. 一例は、完全にケーキのアイシングです。

4

5 に答える 5

13

重要な点は、インターフェースを実装するクラスを 1 つだけ作成するだけではなく、複数のクラスを作成できるということです。

インターフェイスを使用してクラスと対話するコードがある場合、そのコードは、その実装方法に関係なく、そのインターフェイスを実装する任意のクラスと連携できます。これにより、変更することなく、異なるクラスを同じコードにフィードできます。

インターフェースは、コンポーネントの疎結合に到達する唯一の方法ではないことに注意してください。疎結合とは、コンポーネントが相互の内部動作について何も想定せずに連携できることを意味します。これを行うのは、コンポーネントがお互いをブラック ボックスとして扱うほど、他のコンポーネントに影響を与えずに 1 つのコンポーネントを簡単に変更できるようになるためです。インターフェイスは、この目標に向けて機能するツールの 1 つになる可能性がありますが、必須ではなく、この点に関して言及する価値のある唯一のツールでもありません。

于 2013-10-20T22:33:53.983 に答える
8

実装クラスは、機能を実装する方法を選択できます。

public interface PersonRepository {
    Person getPerson(String name);
}

CSV ファイルを読み取るか、データベースにクエリを実行することで実装できます。人を必要とするオブジェクトは、それが何であるかだけで、人がどのように見つけられたりロードされたりするかは気にしません。

したがって、疎結合であると見なされます。

密結合の場合、SQL クエリの作成方法や CSV ファイルの読み取り方法を知る必要があります。

于 2013-10-20T22:32:52.150 に答える