JAVA高級:根據接口解耦示例

1、什麼是耦合:簡單的在開發一個類時,必須緊緊依賴於另一個類。或者一個類修改以後,另一個也必須修改等情況。

2、什麼是解耦:通過一定的設計,使一個類並不緊緊依賴一另一個類,這樣在類設計時或修改時,不會影響到其它類。

觀察所有動物吃東西的情況,如果吃的東西爲“植物”,則顯示爲食草動物如魚類,“肉”,則爲“食肉動物”,如虎類。

常規開發:
1、設計魚類。
2、動物園類。
步驟:必須在魚類設計完成以後才能開發動物園類。最大的壞處,魚類和動物園類高耦合,不便於切換算法,也不能協同開發。

通過接口來解除高耦合。使類與類之間的開發互不依賴。
示例:
1、根據“觀察所有動物吃東西的情況”,定義一個接口,如“IAnimal”--關注有什麼行爲,即eat();
2、根據IAnimal接口開發出業務類Zoo
3、具體實現類任何時候開發都可以。

關鍵:
1、多態大多數是這樣使用的:
父類 a = new 子類();
接口 b = new 實現類();

2、還有一種,是屬於類型轉化。
z.animal = fish;//fish是Fish類型,也可以是IAnimal類型。
分析:fish由Fish類型轉化爲了IAniaml類型。

實現原理:利用接口指定要調用的方法,然後在業務類中只使用這些規定的方法,於是實現了業務類與實現類的分離。

說明:如果事先可以設計出要使用的方法,則可以先設計接口再開發具體類;如果不能,則也無法使用接口。
但是大多數情況下,對於核心業務類的核心方法,都是可以確定的,所以在實際開發中,大量了使用接口。

說明2:/**
 * 參數匹配原則
 * 1、類型本身  2、類型所實現的接口 3、類型所繼承的父類
 */

發佈了1 篇原創文章 · 獲贊 0 · 訪問量 2851
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章