設計模式之Factory工廠模式的好處


最最直觀的好處就是吹牛逼,看着要比普通創建對象要屌

好看

一般情況下,我們創建對象使用的是new。
Sample sample=new Sample();

然而,實際情況會比這樣復雜的多,比如說
Sample sample=new Sample(超級無敵長、超級無敵多、超級無敵難記、超級無敵容易出錯的參數);

這時候,我們的代碼會非常難看了,相當於把一籮筐的雞蛋全放在一個籃子里,維護起來將會很困難,也容易出錯。

避免new很多東西

假如說我們要創建一個對象,而創建這個對象必須要創建很多個對象才可以實現相應的功能,可想而知,這樣開發難度和維護難度會很高。

舉個例子:
制造一個寶馬汽車X3的車,一般情況我們需要制造輪子、引擎、座位等等;可是如果有一個BMWX3Factory的話,調取該Factory就可以直接制造。

避免混淆

Sample sample=new Sample(超級無敵長、超級無敵多、超級無敵難記);
Sample sample=new Sample(超級無敵長、超級無敵多、超級無敵難記、超級無敵容易出錯的參數);
Sample sample=new Sample(超級無敵長、超級無敵多、超級無敵好記、超級無敵容易出錯的參數);

這三個創建對象的方法非常相似,就只有一個參數不一樣,有時候就是會弄混!

實際例子

我們知道數據庫有多種oracle,db2,sql server,如果,我們每次都要自己初始化連接對象將會蛋疼,因為每次都要自己實現一遍,每次實現的代碼有可能都不一樣,出錯了就會很難維護。

那么通過使用工廠模式,我們只需要記住創建對象的名字就好了,剩下的交給Factory創建就好了,也方便后期的維護。

比如說,DB2的SSL連接
DBconnection sample = DBFactory.createDB2SSLConnection()

比如說,SQL的連接
DBconnection sample = DBFactory.createSQLConnection()

如果說是建造者模式的話,就是一塊一塊參數的拼接,同樣很方便

DB2的SSL連接

DBconnection sample = new DBconnection().withDBtype(DB).withHTTPS()

參考


想要看到更多瑋哥的學習筆記、考試復習資料、面試准備資料?想要看到IBM工作時期的技術積累和國外初創公司的經驗總結?

敬請關注:

瑋哥的博客 —— CSDN的傳送門

瑋哥的博客 —— 簡書的傳送門

瑋哥的博客 —— 博客園的傳送門


免責聲明!

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



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