1. インターフェース分離原則(ISP:Interface Segregation Principle)
定義: 単一の汎用インターフェイスを使用するよりも、複数の特殊なインターフェイスを使用する方がよいでしょう。 「単一のインターフェイスを構築し、肥大化したインターフェイスを構築しないでください」とも言えます。
ISP の 2 つの定義:
◇「クライアントは、自分が使用していないインターフェースに依存することを強制されるべきではない」
クライアントは、必要のないインターフェイスに依存すべきではありません。
◇ 「あるクラスの別のクラスへの依存関係は、可能な限り最小のインターフェイスに依存する必要がある」
あるクラスの別のクラスへの依存関係は、最小のインターフェイスに基づく必要があります。 (クライアントより)
インターフェイスと役割: インターフェイスを、クラスによって提供されるすべてのメソッドの特性の集合として理解します。このように、インターフェースの分割は、タイプの分割をもたらします。したがって、インターフェイスは複数の役割を果たすのではなく、1 つの役割のみを表す必要があります。
インターフェイスの汚染: いわゆるインターフェイスの汚染により、インターフェイスに不必要な責任が追加されます。インターフェイスの汚染により、メンテナンスと再利用の問題が発生します。最も一般的な問題は、汚染されたインターフェイスを再利用するために、不必要なメソッドの実装とメンテナンスを強いられることです。したがって、クライアントプログラムを分離する必要があり、クライアントプログラムを分離することはインターフェースを分離することを意味します。
個別のインターフェースを実装する方法:
一般に、インターフェイスを分離するには 2 つの方法があります。
1) 委任を使用してインターフェイスを分離します。 (委任による分離)
要求を他のインターフェースの実装クラスに委任するだけで、必要な役割を完了できます。これがアダプター パターン (アダプター) です。
2) 多重継承を使用してインターフェースを分離します。 (多重相続による分離)
このメソッドは、必要な役割を完了するために複数のインターフェイスを実装します。
どちらの方法にもそれぞれ長所と短所があります。通常は後者のオプションを最初に検討し、型変換が必要な場合は前者のオプションを選択する必要があります。
この記事は CSDN ブログからのものです。転載する場合は出典を明記してください: http://blog.csdn.net/scelong/archive/2009/12/18/5031030.aspx
-