本文的參考文章及書籍如下:
《head first設(shè)計模式》
本文主要介紹簡單工廠以及工廠模式抽象工廠將放在下一次發(fā)布的文章中第煮。
1.工廠模式概念
工廠顧名思義是用來生成產(chǎn)品、商品的撵摆,我們可以把工廠看成是一個創(chuàng)建對象的小型作坊害晦。用他來幫助我們
創(chuàng)建各種實例。
2.簡單工廠的實現(xiàn)
在以前沒有水果超市鲫剿,還是擺攤互相交易買賣的時候稻轨,當(dāng)你在攤子面前,你想買個芒果政冻,跟農(nóng)名白白詢問還有芒果么粱挡,
攤子上的剛好沒有了,我去給你摘新鮮的過來榕堰,我們把農(nóng)民白白當(dāng)成我們要詢問的客戶端嫌套,把水果當(dāng)成產(chǎn)品。
首先實現(xiàn)一個水果基類魏蔗。如圖:
接著實現(xiàn)具體的水果例如蘋果莺治、芒果。如圖所示:
我們詢問農(nóng)民白白要芒果床佳,他就去摘給我們榄审,客戶端圖下:
從這個過程我們可以看到具體的創(chuàng)建水果的過程搁进,去果園采摘的過程,這個芒果是怎么來的影兽。簡單工廠進化如下匆瓜,
農(nóng)民白白叫來了他兒子小明队萤,讓小明去采摘,農(nóng)民白白坐著專門賣水果左冬。
把小明看成一個工廠,他負責(zé)去創(chuàng)建采摘水果拇砰,當(dāng)攤子上沒有水果時,叫一聲小明牧氮,待會就會有了瑰枫。
改變的代碼如下:
我們看到簡單工廠只是對創(chuàng)建的過程進行了封裝尸诽。
3.工廠模式的實現(xiàn)
農(nóng)民白白的水果太好吃了盯另,很多人慕名而來,轉(zhuǎn)眼農(nóng)名白白就變成了大農(nóng)鸳惯,因為來的人太多了叠萍,每個人的需要的水果都不一樣俭令,
種類太多,而且小明一個人去摘這些水果太累了,因此有人來替大農(nóng)想了個新法子瓢湃,擴大園子,對水果進行分類雾叭,招進更多的人來負責(zé)
不同水果的采摘(生成)落蝙。
這里我們抽象出一個大的工廠也就是大果園,如圖所示:
我們對果園分類移迫,比如一塊地專門種植生成南方的水果厨埋,一塊地專門種植北方的水果捐顷,負責(zé)這兩塊地的人形成了2個工廠,如圖所示:
當(dāng)一個買家過來說要一個蘋果和一個芒果時候废赞,我們就喊管理北方水果的人趕緊產(chǎn)出一個蘋果和芒果補貨過來唉地。客戶端代碼示例如下:
工廠模式是建立在簡單工廠模式下的。工廠模式屬于創(chuàng)建型旷祸,因此創(chuàng)建對象在設(shè)計時候可思考用工廠模式的方式來解決。