日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

软件设计原则——接口隔离原则

發(fā)布時間:2025/4/16 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件设计原则——接口隔离原则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

客戶端不應該被迫依賴于它不使用的方法;

一個類對另一個類的依賴應該建立在最小的接口上。



【例】安全門案例

我們需要創(chuàng)建一個黑馬品牌的安全門,該安全門具有防火、防水、防盜的功能。

可以將防火,防水,防盜功能提取成一個接口,形成一套規(guī)范。

類圖如下:

SafetyDoor.java

package com.itheima.principles.demo4.before;/*** @version v1.0* @ClassName: SafetyDoor* @Description: 安全門接口* @Author: dym*/ public interface SafetyDoor {//防盜void antiTheft();//防火void fireProof();//防水void waterProof(); }

HeimaSafetyDoor.java

package com.itheima.principles.demo4.before;/*** @version v1.0* @ClassName: HeimaSafetyDoor* @Description: 黑馬品牌的安全門* @Author: dym*/ public class HeimaSafetyDoor implements SafetyDoor {public void antiTheft() {System.out.println("防盜");}public void fireProof() {System.out.println("防火");}public void waterProof() {System.out.println("防水");} }

Client.java

package com.itheima.principles.demo4.before;/*** @version v1.0* @ClassName: Client* @Description: TODO(一句話描述該類的功能)* @Author: dym*/ public class Client {public static void main(String[] args) {HeimaSafetyDoor door = new HeimaSafetyDoor();door.antiTheft();door.fireProof();door.waterProof();} }



上面的設計我們發(fā)現了它存在的問題,黑馬品牌的安全門具有防盜,防水,防火的功能。

現在如果我們還需要再創(chuàng)建一個傳智品牌的安全門,而該安全門只具有防盜、防水功能呢?

很顯然如果實現SafetyDoor接口就違背了接口隔離原則,那么我們如何進行修改呢?

看如下類圖:

?

AntiTheft.java

package com.itheima.principles.demo4.after;/*** @version v1.0* @ClassName: AntiTheft* @Description: 防盜接口* @Author: dym*/ public interface AntiTheft {void antiTheft(); }

Fireproof.java

package com.itheima.principles.demo4.after;/*** @version v1.0* @ClassName: Fireproof* @Description: 防火接口* @Author: dym*/ public interface Fireproof {void fireproof(); }

Waterproof.java

package com.itheima.principles.demo4.after;/*** @version v1.0* @ClassName: Waterproof* @Description: 防水接口* @Author: dym*/ public interface Waterproof {void waterproof(); }

HeiMaSafetyDoor.java

package com.itheima.principles.demo4.after;/*** @version v1.0* @ClassName: HeiMaSafetyDoor* @Description: TODO(一句話描述該類的功能)* @Author: dym*/ 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.java

package com.itheima.principles.demo4.after;/*** @version v1.0* @ClassName: ItcastSafetyDoor* @Description: 傳智安全門* @Author: dym*/ public class ItcastSafetyDoor implements AntiTheft,Fireproof {public void antiTheft() {System.out.println("防盜");}public void fireproof() {System.out.println("防火");} }

Client.java

package com.itheima.principles.demo4.after;import com.itheima.principles.demo4.before.HeimaSafetyDoor;/*** @version v1.0* @ClassName: Client* @Description: TODO(一句話描述該類的功能)* @Author: dym*/ public class Client {public static void main(String[] args) {//創(chuàng)建黑馬安全門對象HeimaSafetyDoor door = new HeimaSafetyDoor();//調用功能door.antiTheft();door.fireProof();door.waterProof();System.out.println("============");//創(chuàng)建傳智安全門對象ItcastSafetyDoor door1 = new ItcastSafetyDoor();//調用功能door1.antiTheft();door1.fireproof();} }

總結

以上是生活随笔為你收集整理的软件设计原则——接口隔离原则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。