オブジェクト指向(II)の七のOOP原理
前は、最初の4つの原則を書いた、これは続けて~~
インタフェースの分離:クライアントはそれに頼るべきではありません、インタフェースはありません。このクラスの別のクラスへの依存は、最小のインターフェイスに基づいている必要があります。
大方言である - インタフェースを改良するために、できるだけ多くを言うことです、インタフェースメソッドは、以下を試してみてください
/ ** * OOP原理を分離インターフェースを達成するため * @author gongliying * @date 2019年6月15日 * / 実現(){ クラス{化粧品 コンストラクタ(名){ this.name名= } カラー(){ にconsole.log(この.nameの"色") } 効力(){ にconsole.log(this.name、 "保湿") } サイズ(){ にconsole.log(this.name、 "厚さ") } } クラス{}延び化粧品口紅 化粧品アイライナー{}クラス延び LET kouhong =新しい新しい口紅(「口紅」) kouhong.color() //色口紅 kouhong.efficacy() //口紅保湿 kouhong.size() //口紅厚 LET yanying =新しいアイライナー( "シャドウ") yanying.color() //アイシャドウの色 yanying.efficacy() //アイシャドウ保湿 yanying。サイズ() //アイシャドウ厚 }
私は確かに達成しているけど、何も特別な感情emmmmは冗長ではありませんが、それでも少しロジックは、右のようですか???私もああ潤いを聞いたことがない何の口紅やアイシャドウ厚ああはありませんので、それは少し冗長になったときに継承されたいくつかの方法がありますので、公式の単語がある - クライアントが自分の不要なインターフェースに依存しないでください、
次のように変更
/ ** * OOP原理を分離インターフェースを達成するため * @author gongliying * @date 2019年6月15日 * / 実現(){ クラス{化粧品 コンストラクタ(名){ this.name名= } カラー(){ にconsole.log(この.nameの、 "色") } } クラス延び化粧品口紅{ 効力(){ にconsole.log(this.name、 "保湿") } } クラス延び化粧品アイライナー{ サイズ(){ にconsole.log(this.name、 "厚さ") } } LET kouhong =新しい新しい口紅( "口紅") kouhong.color() //色口紅 kouhong.efficacy() //保湿口紅 のlet yanying =新しいアイライナー( "影") yanying.color() //カラーアイ yanying.size() //アイシャドウ厚 }
これはまた、インタフェースは、それはインターフェースから分離されたインターフェイスに依存する必要はありません(マンダリン)の柔軟性を向上させ、洗練されますが、独自の方法を持っている、一般的なアプローチで、非常に良好ではないように見えます