
1.png
通常我們在網上找的
第三方開源lib(好比高層模塊),我們自己實現的部分好比底層模塊,我們通過gradler的方式引入,但是出現擴展問題時,我們需要download下來源碼進行修改。
當我們寫項目的時候,改變依賴,低層實現類抽象出來,放到高層類里面。就好比GpsTracker,我們不能在高層類里面去實例一個BaiduTracker(具體實現),我們抽象出來一個LocationTracker,讓其成為高層的成員變量,通過工廠模式實例化。

2.png
- 高層和低層分別new出來,通過set的方法依賴
-
通過Helper實現低層,高層依賴Helper
3.PNG
為什么會有接口回調?
如果沒有接口回調,高層驅動低層,低層反饋給高層,二者相互引用,互相持有,如果低層想回調高層的方法,即對象.方法,低層調用高層的方法,不應該允許這種行為,因為高層是concroller,控制的模塊流程,不應該調用高層的東西,這時候接口就來了。
高層抽象,低層實現,低層回調接口,高層實現接口。