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