軟件設計七大原則:(四)接口隔離原則

一、接口隔離原則簡介

  • 用多個專門的接口,而不再使用單一的總接口,客戶端不應該依賴它 不需要的接口。
  • 一個類對一個類的依賴應該建立在最小的接口上。
  • 建立單一接口,不要建立龐大臃腫的接口。
  • 儘量細化接口,接口中的方法儘量少。
  • 注意:注意適度原則,一定要適度,過大的話會增加耦合性,而過小的話會增加複雜性和開發成本。
  • 優點:符合我們常說的高內聚低耦合的設計思想,從而使得類具有很好的可讀性、可擴展性和可維護性。

二、代碼實現

1.違背接口隔離的反例

public interface AnimalAction {
    void eat();
    void fly();
    void swim();
}
public class Bird implements AnimalAction {
    @Override
    public void eat() {

    }

    @Override
    public void fly() {

    }

    @Override
    public void swim() {

    }
}
public class Dog implements AnimalAction {
    @Override
    public void eat() {

    }

    @Override
    public void fly() {

    }

    @Override
    public void swim() {

    }
}

2.遵循接口隔離原則的正確示範

public interface SwimAnimalAction {
    void swim();
}
public interface EatAnimalAction {
    void eat();
}
public interface FlyAnimalAction {
    void fly();
}

public class Dog implements SwimAnimalAction, EatAnimalAction {
    @Override
    public void eat() {

    }

    @Override
    public void swim() {

    }
}
public class Bird implements EatAnimalAction,FlyAnimalAction,SwimAnimalAction {

    @Override
    public void eat() {
        
    }

    @Override
    public void fly() {

    }

    @Override
    public void swim() {

    }
}

三、關於接口隔離原則的理解

    /**
     * 細粒度可以組裝,粗粒度不能拆分,這樣可以提高程序可維護性和可擴展性。
     *
     * 接口隔離原則與單一職責不同的是,單一職責原則指的類/接口/方法是單一的,
     * 只要接口的職責是單一的,裏面可以有五個、十個方法也是可以的。針對的是程序中實現和細節。
     *
     * 而接口隔離原則注重的是對接口依賴的隔離。針對的是抽象、程序整體。
     */
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章