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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【面向对象设计模式】 接口型模式 (一)

發布時間:2025/6/17 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【面向对象设计模式】 接口型模式 (一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

.

.

作者?:萬境絕塵?

轉載請注明出處?:?http://blog.csdn.net/shulianghan/article/details/19028507

.


接口型模式組成?: 該模式包括適配器(Adapter)模式,外觀(Facade)模式,合成(Composite)模式,橋接(Bridge)模式?四種模式;


類的接口 :?

-- 前置條件 : 接口A, 類B, 類B實現接口A;?

-- 允許訪問 : 類A允許其它類的對象可以訪問類B的 方法 與 字段, 類A 是類B的接口;?

-- 實現關系 : 類B 方法需要實現 類A接口的方法名表示的操作, 類A 的實現就是 類B 中方法體的代碼;?


接口與實現的概念 : 接口 與 實現 二者是分離的, Java允許多個類實現同一個接口, 提供相同的功能; 也允許一個類實現多個接口;

-- 接口: 對象必須遵循的承諾;

-- 實現 : 對象如果履行承諾;



1. 接口與抽象類



接口與抽象類的區別 : 即使抽象類中全是抽象方法, 看起來與接口類似, 但是還是與接口有很大的不同;

-- 實現繼承個數 : 類A 可以實現多個接口, 但是只能繼承一個抽象類;

-- 抽象方法個數 : 接口中必須都是抽象方法, 抽象類中可以包含具體方法;

-- 是否使用字段 : 接口中只能創建 static final 常量字段, 抽象類中可以聲明和使用任何類型字段;

-- 方法的描述符 : 接口中方法必須是public修飾, 抽象類中可以是任何限定;

-- 是否構造函數 : 接口沒有構造函數, 抽象類可以有構造函數;


C語言與Java在接口方面的區別 : C語言中只有抽象類, 沒有接口, Java語言中二者皆有;?


接口作用 : 如果不能使用接口, 完全可以使用抽象類來代替, 接口在多層開發中發揮很大作用, 例如在J2EE中的MVC架構;


實際例子 : 火炮 和 坦克 都屬于裝甲車, 二者的應用場合各有不同, 但是它們有相同之處, 可以定義成接口 :

public interface Panzer {abstract int getSpeed(); //獲取速度public double getCaliber(); //獲取口徑void fire(); //開火}

從上面的例子列舉接口的一些特性 :?

-- 抽象方法 : 接口中的方法都是抽象方法, 不管有沒有abstract聲明;

-- 公開方法 : 接口中的方法都是公開方法, 不管有沒有public修飾;

-- 不完全公開 : 接口中的方法在包內是公開的, 如果沒有public修飾, 包內可以訪問, 但是包外不能訪問, 如果想要在包外訪問該接口, 需要使用public修飾;

-- 接口繼承: 接口A 可以 繼承另一個接口B, 例如 List 接口就繼承了 Collection 接口;

-- 接口不一定有方法 : 沒有方法的接口可以成為標記接口, 標記接口的作用 - 一個接口處于很高的繼承層次, 其方法不一定適用所有的類, 如果我們希望這個繼承體系存在, 可以創建一個標記接口, 其中不定義任何方法;

-- 接口字段 : 接口中只能聲明 static final 字段, 在接口實現類中可以直接調用這些字段, 其它的實例字段不能再接口中聲明;

-- 接口構造函數 : 接口中不能定義構造函數, 如果定義了就會使實現類中必須實現這一特定構造函數, 不實用;?



2. 接口與職責


接口的優勢 : 接口限制了對象之間的交互過程, 這樣的好處是即使接口的實現類發生了巨大的變化, 接口還是不會改變的, 調用接口的類仍正常運行;

-- eg : 在上面的 Panzer 實現類編寫的時候, 開發者必須實現該接口的三個方法, 這是必須遵循方法制定的契約;


實現類不必實現所有方法 : 實現類可以忽略接口中某些抽象類的調用, 但是必須提供一個空的方法體, 換言之, 接口還是要實現的, 但是可以不使用;

-- 樁的概念 : stub, 樁 是接口的實現類, 實現了類中的所有的方法, 但是這些方法都沒有方法體, 沒有實際意義;

-- 樁的作用 : 開發者如果實現一個接口的話, 需要將所有的抽象方法都實現一遍, 寫起來很麻煩, 代碼也很冗余, 這里可以繼承 樁 , 然后實現自己感興趣的方法;


接口聲明常量 : 接口中只能存放 static final 類型的常量, 不能聲明 變量, 如果定義一個 "String str;" 就會報錯;

public interface Panzer {public static final String TANK_1 = "KV";public static final String CANNON_1 = "SU-51";abstract int getSpeed(); //獲取速度public double getCaliber(); //獲取口徑void fire(); //開火}
枚舉 : 通常在接口中將有分組類別的常量定義為枚舉 enum;

.


3. 不同場景的接口應用


適配器模式 : 適配類的接口 以 匹配客戶端期待的接口; 如 類A 實現了需求, 但是其方法名不符合接口, 這里就需要使用適配器模式;

外觀模式 : 為一組類 提供一個 簡單接口;

合成模式 : 為單個對象與復合對象提供統一的接口;

橋接模式 : 解除抽象與現實之間的耦合, 使二者能夠獨立演化;

.

.

作者?:萬境絕塵?

轉載請注明出處 :?http://blog.csdn.net/shulianghan/article/details/19028507

.


《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【面向对象设计模式】 接口型模式 (一)的全部內容,希望文章能夠幫你解決所遇到的問題。

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