クライアントは、必要のないインターフェイスに依存すべきではありません。あるクラスの別のクラスに対する依存関係は、最小のインターフェイスに基づく必要があります。
単一の一般的なインターフェイスよりも、複数の特殊なインターフェイスを使用する方が適切です。
あるクラスの別のクラスへの依存関係は、最小のインターフェイスに基づく必要があります。
インターフェイスはロールを表し、異なるロールを 1 つのインターフェイスに割り当てないでください。関連性のないインターフェイスが結合されて、大きく肥大化したインターフェイスが形成され、ロールとインターフェイスが汚染されます。
「クライアントは、使用していないメソッドに依存することを強制されるべきではありません。インターフェイスは、それが配置されているクラス階層ではなく、クライアントに属します。」 これは非常に明確です。クライアントが使用していないメソッドの使用を強制しないでください。ユーザーが使用していないメソッドの使用を強制された場合、これらの顧客は、使用していないメソッドの変更によって引き起こされる変化に直面することになります。
この図の意味は次のとおりです。クラス A はインターフェイス I のメソッド 1、メソッド 2、およびメソッド 3 に依存しており、クラス B はクラス A の依存関係の実装です。クラス C は、インターフェイス I のメソッド 1、メソッド 4、およびメソッド 5 に依存します。クラス D は、クラス C への依存の実装です。クラスBとクラスDについては、どちらも未使用のメソッド(図中の赤文字で示したメソッド)がありますが、インタフェースIが実装されているため、これらの未使用メソッドも実装する必要があります。インターフェースが肥大化しすぎる場合、メソッドがインターフェースに存在する限り、インターフェースに依存するクラスにとって有用かどうかに関係なく、これらのメソッドは実装クラスに実装する必要があることがわかります。良いデザイン。この設計がインターフェース分離原則に準拠するように変更された場合、インターフェース I を分割する必要があります。ここでは、元のインターフェイス I を 3 つのインターフェイスに分割します。分割設計は図に示すとおりです。
インターフェイス分離原則の意味は、次のとおりです。単一のインターフェイスを確立し、実行します。巨大で肥大化したインターフェイスを構築せず、インターフェイスを改良し、インターフェイス内のメソッドをできるだけ少なくするようにしてください。言い換えれば、呼び出しに依存するすべてのクラスに対して巨大なインターフェイスを構築しようとするのではなく、クラスごとに専用のインターフェイスを確立する必要があります。この記事の例では、インターフェイス分離の原則を使用して、巨大なインターフェイスを 3 つの専用インターフェイスに変更します。プログラミングでは、1 つの包括的なインターフェイスに依存するよりも、複数の専用インターフェイスに依存する方が柔軟性が高くなります。インターフェースは設計時に外部から設定される「契約」であり、複数のインターフェースを分散定義することで外部からの変更の波及を防ぎ、システムの柔軟性や保守性を向上させることができます。
これについて言うと、多くの人はインターフェイス分離の原則が前の単一責任の原則に非常に似ていると思うでしょうが、そうではありません。まず、単一責任原則はもともと責任に焦点を当てていましたが、インターフェイス分離原則はインターフェイスの依存関係の分離に焦点を当てていました。第二に、単一責任原則は主にクラスを制約し、次にインターフェイスとメソッドを制約し、プログラムの実装と詳細を対象としていますが、インターフェイス分離原則は主にインターフェイスを制約し、主に抽象化と全体的なフレームワークの構築を目的としています。プログラム。
インターフェース分離原則を使用してインターフェースを制約する場合は、次の点に注意してください。
インターフェースは、制限内で可能な限り小さくする必要があります。インターフェイスを改良するとプログラミングの柔軟性が向上することは事実ですが、小さすぎるとインターフェイスが多くなり、設計が複雑になります。したがって、それは適度に行う必要があります。
インターフェイスに依存するクラスのサービスをカスタマイズし、必要なメソッドのみを呼び出しクラスに公開し、必要のないメソッドを非表示にします。モジュールにカスタマイズされたサービスを提供することに重点を置くことによってのみ、確立される依存関係を最小限に抑えることができます。
結束力を高め、外部とのやり取りを減らします。ほとんどのことを達成するためにインターフェイスで使用するメソッドを最小限にします。
インターフェイス分離の原則を使用する場合は、適度でなければなりません。インターフェイスの設計が大きすぎても小さすぎてもよくありません。インターフェイスを設計するときは、より多くの時間をかけて考え、計画することによってのみ、この原則を正確に実装することができます。
以上がインターフェース絶縁原理とは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。