天天看小說

第116章

時(shí)間:1月1日地點(diǎn):大B房間人物:大B,校

大B:“我們可以認(rèn)爲(wèi)麥當(dāng)勞和肯德基就是生產(chǎn)食物的工廠,那麼理所當(dāng)然,漢堡和雞腿是他們共同生產(chǎn)的兩種食物,不管你去MDL還是KDJ,說(shuō):我要雞腿,那肯定不會(huì)給你拿來(lái)烤羊腿。嘿嘿!這裡,我們假定麥當(dāng)勞和肯德基只生產(chǎn)這兩種產(chǎn)品。我們是消費(fèi)者,我們就是客戶,就是產(chǎn)品的消費(fèi)者,就是程序中對(duì)象的調(diào)用者。而麥當(dāng)勞和肯德基,理所當(dāng)然的,他們就是工廠,一個(gè)叫做麥當(dāng)勞工廠,一個(gè)叫做肯德基工廠,他們是真正的生產(chǎn)者,而對(duì)於我們這些客戶消費(fèi)者(程序中對(duì)象的調(diào)用者)來(lái)說(shuō),不管是去麥當(dāng)勞還是肯德基,我們都說(shuō)一樣的話(我們的要求是穩(wěn)定的):我要雞腿。只要我們提出這個(gè)請(qǐng)求,那麼肯定會(huì)得到我們想要的。而作爲(wèi)工廠(生產(chǎn)者),麥當(dāng)勞和肯德基都生產(chǎn)雞腿和漢堡,所以抽象出來(lái)的抽象工廠都具有生產(chǎn)雞腿和生產(chǎn)漢堡的功能,這是接口中的兩個(gè)方法。因爲(wèi)在這個(gè)接口中,還不知道到底要生產(chǎn)誰(shuí)家的產(chǎn)品,所以只能返回個(gè)抽象的雞腿或漢堡,等到麥當(dāng)勞或者肯德基工廠生產(chǎn)出來(lái),就知道是誰(shuí)家的了。(有標(biāo)誌嘛,這就是動(dòng)態(tài)創(chuàng)建對(duì)象)。不管是麥當(dāng)勞還是肯德基的雞腿或漢堡,它的本質(zhì)都是雞腿或漢堡,所以可以抽象出來(lái)。那麼雞腿就派生出麥當(dāng)勞的雞腿和肯德基的雞腿,而漢堡就派生出麥當(dāng)勞的漢堡和肯德基的漢堡。而對(duì)於我們這些客戶消費(fèi)者(程序中對(duì)象的調(diào)用者)來(lái)說(shuō),不管是去麥當(dāng)勞還使肯德基,我們都說(shuō)一樣的話(我們的要求是穩(wěn)定的):我要雞腿。只要我們提出這個(gè)要求,那麼肯定會(huì)得到我們想要的。不管是誰(shuí)家的雞腿,肯定是雞腿不會(huì)是羊腿。所以,我們只要規(guī)定好是雞腿(接口)就行了,而讓工廠去絕對(duì)具體的製作過(guò)程。我們只伸手接過(guò)來(lái)一個(gè)雞腿,狠狠的咬一口,恩,真香!)到現(xiàn)在爲(wèi)止,我們只和雞腿(抽象的接口)還有抽象工廠(因爲(wèi)我們不管是麥當(dāng)勞還是肯德基,我們只要雞腿)打交道。你現(xiàn)在知不知道什麼是抽象工廠模式?”

小A:“抽象工廠模式提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無(wú)需指定它們具體的類。抽象工廠(AbstractFactory)模式,又稱工具箱(Kit或Toolkit)模式。”

大B:“從模式定義中知道這個(gè)模式的意圖內(nèi)容爲(wèi):提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無(wú)需指定它們具體的類。工廠類層次的通信接口只有抽象工廠和創(chuàng)建產(chǎn)品族的各個(gè)工廠方法,這些工廠方法不帶任何參數(shù),並且返回具有抽象產(chǎn)品類型的具體產(chǎn)品實(shí)例。這些使得客戶端可以不依賴具體產(chǎn)品的類,從而體現(xiàn)了模式的意圖。意圖中的‘而無(wú)需指定它們具體的類’可以理解爲(wèi)客戶端在使用和創(chuàng)建具體產(chǎn)品時(shí)不給出具體產(chǎn)品的任何暗示。”

小A:“師兄,抽象工廠模式有什麼動(dòng)機(jī)啊?”

大B:“考慮一個(gè)支持多種視感(look-and-feel)標(biāo)準(zhǔn)的用戶界面工具包,例如Motif和PresentationManager。不同的視感風(fēng)格爲(wèi)諸如滾動(dòng)條、窗口和按鈕等用戶界面‘窗口組件’定義不同的外觀和行爲(wèi)。爲(wèi)保證視感風(fēng)格標(biāo)準(zhǔn)間的可移植性,一個(gè)應(yīng)用不應(yīng)該爲(wèi)一個(gè)特定的視感外觀硬編碼它的窗口組件。在整個(gè)應(yīng)用中實(shí)例化特定視感風(fēng)格的窗口組件類將使得以後很難改變視感風(fēng)格。”

第188章第13章第124章第155章第117章第193章第213章第189章第54章第71章第139章第129章第176章第142章第96章第133章第125章第143章第180章第22章第198章第3章第15章第160章第47章第56章第219章第8章第44章第208章第177章第199章第157章第80章第178章第132章第18章第189章第59章第215章第54章第10章第5章第165章第29章第159章第85章第160章第116章第47章第132章第178章第88章第154章第211章第98章第142章第197章第174章第180章第117章第224章第163章第31章第121章第205章第83章第218章第169章第29章第133章第124章第180章第187章第72章第131章第169章第95章第153章第137章第91章第44章第33章第135章第105章第72章第58章第41章第119章第106章第226章第46章第96章第203章第197章第104章第93章第37章第29章第1章
第188章第13章第124章第155章第117章第193章第213章第189章第54章第71章第139章第129章第176章第142章第96章第133章第125章第143章第180章第22章第198章第3章第15章第160章第47章第56章第219章第8章第44章第208章第177章第199章第157章第80章第178章第132章第18章第189章第59章第215章第54章第10章第5章第165章第29章第159章第85章第160章第116章第47章第132章第178章第88章第154章第211章第98章第142章第197章第174章第180章第117章第224章第163章第31章第121章第205章第83章第218章第169章第29章第133章第124章第180章第187章第72章第131章第169章第95章第153章第137章第91章第44章第33章第135章第105章第72章第58章第41章第119章第106章第226章第46章第96章第203章第197章第104章第93章第37章第29章第1章
主站蜘蛛池模板: 册亨县| 西充县| 日土县| 扎兰屯市| 永德县| 调兵山市| 岑巩县| 阳曲县| 濮阳市| 涟源市| 关岭| 崇明县| 濮阳市| 珠海市| 宁夏| 浮梁县| 沙河市| 绥化市| 宜丰县| 嘉禾县| 罗山县| 平谷区| 盐津县| 怀化市| 大兴区| 小金县| 三门峡市| 汉川市| 义乌市| 卓尼县| 江油市| 杭锦后旗| 彝良县| 巴楚县| 凤凰县| 志丹县| 鸡西市| 颍上县| 梧州市| 通渭县| 黄骅市|