1.現(xiàn)實(shí)問題 面向?qū)ο缶幊炭偸呛同F(xiàn)實(shí)問題的解決思想一致的。 汽車是如何產(chǎn)生的?這個(gè)問題在學(xué)習(xí)工廠模式中已經(jīng)舉過例子。我再重新分析一下,看看有何不同。 Factory模式中: 1.有一個(gè)抽象的工廠。 2.實(shí)現(xiàn)一個(gè)具體的工廠---汽車工廠。 3.工廠生產(chǎn)汽車A,得到汽車產(chǎn)品A。 4.工廠生產(chǎn)汽車B,得到汽車產(chǎn)品B。 這樣做,實(shí)現(xiàn)了購(gòu)買者和生產(chǎn)線的隔離。 Builder模式: 1.離合器工廠生產(chǎn)離合器產(chǎn)品,得到汽車部件A。 2.輪胎工廠生產(chǎn)輪子產(chǎn)品,得到汽車部件B。 3.車身工廠生產(chǎn)車身產(chǎn)品,得到汽車部件C。 4.將這些部件放到一起,形成剛好能夠組裝成一輛汽車的整體。 5.將這個(gè)整體送到汽車組裝工廠,得到一個(gè)汽車產(chǎn)品。 或者更抽象一點(diǎn)理解: 1.將汽車的每一個(gè)零件都送到汽車組裝工廠。 2.在工廠里,組裝離合器,得到汽車部件A。 3.在工廠里,組裝輪胎,得到汽車部件B。 4.在工廠里,組裝車身,得到汽車部件C。 5.在工廠里,組裝每個(gè)部件,得到一個(gè)汽車產(chǎn)品。 這樣做,目的是為了實(shí)現(xiàn)復(fù)雜對(duì)象生產(chǎn)線和其部件的解耦。 二者不同在于: Factory模式不考慮對(duì)象的組裝過程,而直接生成一個(gè)我想要的對(duì)象。 Builder模式先一個(gè)個(gè)的創(chuàng)建對(duì)象的每一個(gè)部件,再統(tǒng)一組裝成一個(gè)對(duì)象。 Factory模式所解決的問題是,工廠生產(chǎn)產(chǎn)品。而Builder模式所解決的問題是工廠控制產(chǎn)品生成器組裝各個(gè)部件的過程,然后從產(chǎn)品生成器中得到產(chǎn)品。 2.開闊天空 我在學(xué)習(xí)的時(shí)候,把代碼例子認(rèn)真的讀了一遍,便豁然開朗。 學(xué)習(xí)模式的目的在于了解此模式究竟為何模式。了解了此模式的結(jié)構(gòu)已足矣。給我的感覺,模式就是一種思想。學(xué)習(xí)一個(gè)模式,花上一兩個(gè)小時(shí)把此模式的意思理解了,就夠了。其精華的所在會(huì)在以后工作的設(shè)計(jì)中逐漸體現(xiàn)出來(lái)。 首先,當(dāng)一個(gè)產(chǎn)品(對(duì)象)的創(chuàng)建過程很復(fù)雜的時(shí)候,且這個(gè)產(chǎn)品的實(shí)現(xiàn)需要分別實(shí)現(xiàn)幾個(gè)不同的部件。這個(gè)時(shí)候,我們考慮用到Builder模式。具體實(shí)現(xiàn)過程的例子如下: Product: 復(fù)雜對(duì)象類。我們最終就是為了得到它的一個(gè)對(duì)象。我叫它產(chǎn)品。
Part: 復(fù)雜對(duì)象的部件接口。沒準(zhǔn)有幾種。體現(xiàn)對(duì)象的復(fù)雜性。即產(chǎn)品部件。
歡迎來(lái)訪!^.^! 本BLOG僅用于個(gè)人學(xué)習(xí)交流! 目的在于記錄個(gè)人成長(zhǎng). 所有文字均屬于個(gè)人理解. 如有錯(cuò)誤,望多多指教!不勝感激!
Copyright © 久城