抽象工廠和工廠方法


 

 

工廠方法模式:
一個抽象產品類,可以派生出多個具體產品類。
一個抽象工廠類,可以派生出多個具體工廠類。
每個具體工廠類只能創建一個具體產品類的實例。

抽象工廠模式:
多個抽象產品類,每個抽象產品類可以派生出多個具體產品類。
一個抽象工廠類,可以派生出多個具體工廠類。
每個具體工廠類可以創建多個具體產品類的實例。

區別:
工廠方法模式只有一個抽象產品類,而抽象工廠模式有多個。
工廠方法模式的具體工廠類只能創建一個具體產品類的實例,而抽象工廠模式可以創建多個。

 

設計模式的一個重要原則就是:別改代碼,只需要添代碼,以前所有的老代碼,都是有價值的,需要盡力保留
new一個對象時,new的過程是寶貴的如何創建老對象的知識點(有的new很復雜,包括了很多參數),如果這個代碼被修改了,那么保留的老對象也不知道怎么使用了,整個體系殘缺了
所以要想辦法保留老對象的new過程,把這個new過程保存分布到一系列工廠類里,就是所謂的工廠模式,一般有三種方式來封裝
簡單工廠:把對象的創建放到一個工廠類中,通過參數來創建不同的對象。
這個缺點是每添一個對象,就需要對簡單工廠進行修改(盡管不是刪代碼,僅僅是添一個switch case,但仍然違背了“不改代碼”的原則)
工廠方法:每種產品由一種工廠來創建,一個工廠保存一個new
基本完美,完全遵循 “不改代碼”的原則
抽象工廠:僅僅是工廠方法的復雜化,保存了多個new
大工程才用的上


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM