更新時間:2021-08-19 來源:黑馬程序員 瀏覽量:
在軟件開發(fā)中,為了提高軟件系統(tǒng)的可維護(hù)性和可復(fù)用性,增加軟件的可擴(kuò)展性和靈活性,程序員要盡量根據(jù)6條原則來開發(fā)程序,從而提高軟件開發(fā)效率、節(jié)約軟件開發(fā)成本和維護(hù)成本。這六條分別是開閉原則、里氏代換原則、依賴倒轉(zhuǎn)原則、接口隔離原則、迪米特法則、合成復(fù)用原則,下面主要介紹里接口隔離原則。
客戶端不應(yīng)該被迫依賴于它不使用的方法;一個類對另一個類的依賴應(yīng)該建立在最小的接口上。
下面看一個例子來理解接口隔離原則
【例】安全門案例
我們需要創(chuàng)建一個黑馬品牌的安全門,該安全門具有防火、防水、防盜的功能??梢詫⒎阑穑浪?,防盜功能提取成一個接口,形成一套規(guī)范。類圖如下:
上面的設(shè)計(jì)我們發(fā)現(xiàn)了它存在的問題,黑馬品牌的安全門具有防盜,防水,防火的功能?,F(xiàn)在如果我們還需要再創(chuàng)建一個傳智品牌的安全門,而該安全門只具有防盜、防水功能呢?很顯然如果實(shí)現(xiàn)SafetyDoor接口就違背了接口隔離原則,那么我們?nèi)绾芜M(jìn)行修改呢?看如下類圖:
代碼如下:
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("防火"); } }
猜你喜歡: