今天來寫寫設計模式----------------------------簡單工廠模式結合策略模式,另外加入了反射

這倆個模式結合簡單說下優缺點,主要還是結合代碼一起分析,很容易學會,策略模式是一種定義算法的模式,主要是以相同的方式調用所有的算法,減少了各種算法的耦合,另外一個是可以單獨測某個算法,避免出現整體失誤。

先給大家看一段代碼,這是簡單工廠模式下實現簡單收銀系統

按三步曲來,先定義工廠類

再抽出超類

這個地方給大家解釋下爲什麼要用抽象類和抽象方法,其實用實體類和實體方法也可以實現,不過這裏要考慮,如果類裏面方法較多的情況下,容易遺忘去重寫某些方法,這裏主要是起了一個提示作用。

最後一個是算法類,其實這裏面父類就是算法類,所有子類重寫算法,子類就是算法類,這是其中一個算法子類

客戶端代碼就如下所示

功能到這裏我們算是已經完成了,不過眼尖的會發現,工廠類使用了switch case語句,這樣的話,每次都要從上到下判斷一次,不符合我們優化代碼效率的目的,當你的父類是算法類父類的時候,你就應該考慮使用策略模式,這個模式就是爲了這種情況下研究出來的,接下來我們看看策略模式結合反射,其他類不變,我們不要工廠類,換成新的策略類

我們在客戶端使用反射模式去調用你想要的那個類和方法,這樣一來,就做到了完全分離,你再加個算法類的話,只要加個子類和方法就可以了,做到了真正的低耦合,這種就是代碼的優化了!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章