設計模式(4):JAVA(4):軟體設計原則(4)介面隔離原則:設計介面時,介面的抽象應該是有意義的
阿新 • • 發佈:2021-09-04
介面隔離原則:設計介面時,介面的抽象應該是有意義的
反例:動物介面中定義的方法並不是被所有動物需要的
interface Animal{ void eat(); void fly(); void swim(); } class Bird implements Animal{ @Override public void eat() { System.out.println("吃"); } @Override public voidfly() { System.out.println("飛"); } //======鳥不會游泳,並不需要實現 @Override public void swim() { System.out.println("游泳"); } }
正例:介面抽象出有意義的層級,供需要的類去實現
interface Flyable{ void fly(); } interface Swimable{ void swim(); }interface Eatable{ void eat(); } class Bird implements Flyable,Eatable{ ..... } class Dog implements Swimable,Eatable{ ..... }
客戶端不應該依賴那些它不需要的介面。
一旦一個介面太大,則需要將它分割成一些更細小的介面,使用該介面的客戶端僅需知道與之相關的方法即可
本文來自部落格園,作者:秋華,轉載請註明原文連結:https://www.cnblogs.com/qiu-hua/p/15227099.html