「算法基礎」編程常見模式

1、面向對象實用原則

(1)關閉原則:新功能不需要修改原類,只需要增加新類。

(2)松耦合原則:處理互相依賴,可以使用中間人的方法,讓所有類關聯於中間人(接口、代理人)。

繼承是強關聯,容易不便於維護。父類一旦修改,子類容易出問題。

案例1:消除類間的依賴關係

「算法基礎」編程常見模式

優化過程,1增加接口,2將實例化過程放在類的外部完成。

「算法基礎」編程常見模式

實際使用中,利用了泛化的思想。

「算法基礎」編程常見模式

案例2:A不能繼承B,但是可以重用B的功能。

創建代理方法。

「算法基礎」編程常見模式

「算法基礎」編程常見模式

2、單例模式

不建議直接學習設計模式,有項目經驗後再去看

讓類只能創建一個實例,避免創建多個實例。

「算法基礎」編程常見模式

主代碼中的實例化會錯誤,因為我們在T類中初始化了類。通過取得實例方法取得實例

「算法基礎」編程常見模式

也可以採用靜態塊的寫法

「算法基礎」編程常見模式

單例模式拓展為少例模式,可以用列表的方式,或者建立T1,T2這樣的思路。

「算法基礎」編程常見模式

3、組合與聚合

「算法基礎」編程常見模式

通過實線虛線也可以看出來強弱關係。不恰當的例子,戰士和心臟是組合關係,戰士死了心臟也停止了;戰士和步槍是聚合關係,戰士死了,步槍還能繼續用。

「算法基礎」編程常見模式

鴨子和貓都繼承動物,鴨子的游泳功能實現了游泳接口。

案例:動態數組中只能加入2個同類型字符串

完善arrayList功能

繼承框架:

「算法基礎」編程常見模式

組合框架:

「算法基礎」編程常見模式

聚合框架:

利用外部接口注入

「算法基礎」編程常見模式


分享到:


相關文章: