首頁技術(shù)文章正文

接口隔離原則理解[軟件設(shè)計(jì)原則]

更新時(shí)間:2021-08-19 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

在軟件開發(fā)中,為了提高軟件系統(tǒng)的可維護(hù)性和可復(fù)用性,增加軟件的可擴(kuò)展性和靈活性,程序員要盡量根據(jù)6條原則來開發(fā)程序,從而提高軟件開發(fā)效率、節(jié)約軟件開發(fā)成本和維護(hù)成本。這六條分別是開閉原則、里氏代換原則依賴倒轉(zhuǎn)原則、接口隔離原則、迪米特法則、合成復(fù)用原則,下面主要介紹里接口隔離原則

客戶端不應(yīng)該被迫依賴于它不使用的方法;一個(gè)類對(duì)另一個(gè)類的依賴應(yīng)該建立在最小的接口上。

下面看一個(gè)例子來理解接口隔離原則

【例】安全門案例

我們需要?jiǎng)?chuàng)建一個(gè)黑馬品牌的安全門,該安全門具有防火、防水、防盜的功能??梢詫⒎阑?,防水,防盜功能提取成一個(gè)接口,形成一套規(guī)范。類圖如下:

接口隔離原則01

上面的設(shè)計(jì)我們發(fā)現(xiàn)了它存在的問題,黑馬品牌的安全門具有防盜,防水,防火的功能?,F(xiàn)在如果我們還需要再創(chuàng)建一個(gè)傳智品牌的安全門,而該安全門只具有防盜、防水功能呢?很顯然如果實(shí)現(xiàn)SafetyDoor接口就違背了接口隔離原則,那么我們?nèi)绾芜M(jìn)行修改呢?看如下類圖:

接口隔離原則02

代碼如下:

AntiTheft(接口):

public interface AntiTheft {
    void antiTheft();
}

Fireproof(接口):

public interface Fireproof {
    void fireproof();
}

Waterproof(接口):

public interface Waterproof {
    void waterproof();
}

HeiMaSafetyDoor(類):

public class HeiMaSafetyDoor implements AntiTheft,Fireproof,Waterproof {
    public void antiTheft() {
        System.out.println("防盜");
    }

    public void fireproof() {
        System.out.println("防火");
    }


    public void waterproof() {
        System.out.println("防水");
    }
}

ItcastSafetyDoor(類):

public class ItcastSafetyDoor implements AntiTheft,Fireproof {
    public void antiTheft() {
        System.out.println("防盜");
    }

    public void fireproof() {
        System.out.println("防火");
    }
}


猜你喜歡:

MySQL和Oracle的區(qū)別

CentOS 下安裝oracle數(shù)據(jù)庫圖文教程

Java swing是什么?有什么作用?

Java集合的分類有哪些?

黑馬程序員java開發(fā)培訓(xùn)課程

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!