



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第PHP設(shè)計(jì)模式之抽象工廠模式實(shí)例分析本文實(shí)例講述了PHP設(shè)計(jì)模式之抽象工廠模式。分享給大家供大家參考,具體如下:
前面的文章說了PHP下的簡單工廠(靜態(tài)工廠)和工廠模式,現(xiàn)在說一下抽象工廠模式
工廠模式我們已經(jīng)說過,增加一個(gè)產(chǎn)品很簡單,增加對應(yīng)的產(chǎn)品類和工廠類,不需要對原有代碼進(jìn)行改動,符合開閉原則
現(xiàn)在接著上篇文章,我們又有了新的需求,我們要求蘋果味飲料和香蕉味飲料,有百事和可口可樂兩個(gè)品牌,用工廠模式,就實(shí)現(xiàn)不了了,我只能增加單一的產(chǎn)品,但是增加品牌我實(shí)現(xiàn)不了,引申而出抽象工廠模式,代碼如下
*CreatedbyPhpStorm.
*User:tiansi
*Date:18/1/23
*Time:下午5:10
//工廠接口
interfaceFruitFactory{
//生產(chǎn)飲料方法
functionmakeAppleFruit();
functionmakeBananaFruit();
//飲料接口
interfaceFruit{
functiongetFruitName();
classBaishiAppleFruitimplementsFruit{
functiongetFruitName()
echo'百事蘋果味飲料';
classBaishiBananaFruitimplementsFruit{
functiongetFruitName()
echo'百事香蕉味飲料';
classColeiAppleFruitimplementsFruit{
functiongetFruitName()
echo'可口可樂蘋果味飲料';
classColeBananaFruitimplementsFruit{
functiongetFruitName()
echo'可口可樂香蕉味飲料';
//百事飲料工廠
classBaishiFruitFactoryimplementsFruitFactory{
functionmakeAppleFruit()
//生產(chǎn)百事蘋果飲料
returnnewBaishiAppleFruit();
functionmakeBananaFruit()
//生產(chǎn)百事香蕉飲料
returnnewBaishiBananaFruit();
//可口可樂飲料工廠
classColeFruitFactoryimplementsFruitFactory{
functionmakeAppleFruit()
//生產(chǎn)可口可樂蘋果飲料
returnnewColeiAppleFruit();
functionmakeBananaFruit()
//生產(chǎn)可口可樂香蕉味飲料
returnnewColeBananaFruit();
$baishi_factory=newBaishiFruitFactory();
$baishi_factory-makeAppleFruit()-getFruitName();
echo"br/
$baishi_factory-makeBananaFruit()-getFruitName();
echo"br/
$cole_factory=newColeFruitFactory();
$cole_factory-makeAppleFruit()-getFruitName();
echo"br/
$cole_factory-makeBananaFruit()-getFruitName();
運(yùn)行結(jié)果:
百事蘋果味飲料
百事香蕉味飲料
可口可樂蘋果味飲料
可口可樂香蕉味飲料
現(xiàn)在我們可以看到如果想要再增加一個(gè)品牌的話只需要再寫一個(gè)工廠類并寫上對應(yīng)的產(chǎn)品類就可以在不改動原有代碼的前提下成功增加品牌
但是這會兒想要再增加一個(gè)單一產(chǎn)品,就很麻煩了,需要更改工廠類,這就是工廠和抽象工廠的區(qū)別
工廠模式針對于單一產(chǎn)品,一個(gè)產(chǎn)品抽象類,每個(gè)工廠只能創(chuàng)建一個(gè)產(chǎn)品,支持?jǐn)U展單個(gè)產(chǎn)品,不支持?jǐn)U展產(chǎn)品族,針對一個(gè)產(chǎn)品等級結(jié)構(gòu)
抽象工廠針對于產(chǎn)品族,多個(gè)產(chǎn)品抽象類,每個(gè)工廠能創(chuàng)建多個(gè)產(chǎn)品,支持?jǐn)U展產(chǎn)品族,不支持?jǐn)U展單個(gè)產(chǎn)品,針對多個(gè)產(chǎn)品等級結(jié)構(gòu)
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- NB/T 11634-2024煤礦用局部通風(fēng)機(jī)低噪聲結(jié)構(gòu)設(shè)計(jì)與噪聲限定要求
- 2025年職業(yè)培訓(xùn)師考試試題及答案
- 2025年中小學(xué)教師職稱考試試題及答案
- 2025年信息與計(jì)算科學(xué)專業(yè)考試試題及答案
- 四道題性格測試題及答案
- 西方政治制度下的教育政策影響試題及答案
- 網(wǎng)絡(luò)流量識別技巧試題及答案
- 機(jī)電工程新興市場分析試題及答案
- 西方政治制度中的法治精神與實(shí)踐探討試題及答案
- 影響立法過程的關(guān)鍵因素試題及答案
- 恒生筆試題及答案
- 找人辦事花錢協(xié)議書
- 2024-2025學(xué)年青島版(五四學(xué)制)小學(xué)數(shù)學(xué)二年級下冊(全冊)知識點(diǎn)復(fù)習(xí)要點(diǎn)歸納
- 人工智能訓(xùn)練師(三級)職業(yè)技能鑒定理論考試題(附答案)
- 職業(yè)技術(shù)學(xué)院裝配式建筑工程技術(shù)專業(yè)人才培養(yǎng)方案(2024版)
- 學(xué)校學(xué)生食品安全培訓(xùn)課件
- 設(shè)計(jì)圖學(xué)知到智慧樹期末考試答案題庫2025年華東理工大學(xué)
- 空氣動力學(xué)試題及答案
- 綠色政治經(jīng)濟(jì)學(xué)-環(huán)境治理中的經(jīng)濟(jì)選擇-全面剖析
- 直播帶貨股份協(xié)議合同
- 《有為有不為》公開課一等獎(jiǎng)創(chuàng)新教案
評論
0/150
提交評論