教育行業(yè)A股IPO第一股(股票代碼 003032)

全國咨詢/投訴熱線:400-618-4000

接口隔離原則介紹【軟件設(shè)計原則】

更新時間:2021年08月19日15時58分 來源:傳智教育 瀏覽次數(shù):

好口碑IT培訓(xùn)

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

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

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

【例】安全門案例

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

接口隔離原則01

上面的設(shè)計我們發(fā)現(xiàn)了它存在的問題,黑馬品牌的安全門具有防盜,防水,防火的功能?,F(xiàn)在如果我們還需要再創(chuàng)建一個傳智品牌的安全門,而該安全門只具有防盜、防水功能呢?很顯然如果實(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("防火");
    }
}


猜你喜歡:

軟件設(shè)計模式分類有哪些分類?

什么是單例模式?有幾種?Java面試題常問

dos命令切換到d盤:dos常用命令介紹

JDBC連接oracle數(shù)據(jù)庫步驟

傳智教育java開發(fā)培訓(xùn)課程

0 分享到:
和我們在線交談!