av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

常用設計模式之抽象工廠模式及其PHP實現

瀏覽:33日期:2022-09-13 09:28:33

抽象工廠模式是一種創建型模式,它提供了一種方式,可以將一組具有同一主題的單獨的工廠封裝起來。它的實質是“提供接口,創建一系列相關或獨立的對象,而不指定這些對象的具體類”。

抽象工廠模式提供一個創建一系統相關或相互依賴對象的接口,而無需指定它們具體的類。

抽象工廠模式中主要角色抽象工廠(Abstract Factory)角色:它聲明創建抽象產品對象的接口具體工廠(Concrete Factory)角色:實現創建產品對象的操作抽象產品(Abstract Product)角色:聲明一類產品的接口具體產品(Concrete Product)角色:實現抽象產品角色所定義的接口

這個和工廠方法模式類似,我們不再只要一個漢堡,可能是4個漢堡2個雞翅,我們還是對服務員說,服務員屬于具體工廠,抽象產品就是麥當勞可賣的食物,具體產品是我們跟服務員要的食物。

適用性一個系統要獨立于它的產品的創建、組合和表示時。一個系統要由多個產品系列中的一個來配置時。需要強調一系列相關的產品對象的設計以便進行聯合使用時。提供一個產品類庫,而只想顯示它們的接口而不是實現時。類圖

常用設計模式之抽象工廠模式及其PHP實現

實例

<?phpclass Button{}class Border{}class MacButton extends Button{}class WinButton extends Button{}class MacBorder extends Border{}class WinBorder extends Border{}interface AbstractFactory { public function CreateButton(); public function CreateBorder();}class MacFactory implements AbstractFactory{ public function CreateButton(){ return new MacButton(); } public function CreateBorder(){ return new MacBorder(); }}class WinFactory implements AbstractFactory{ public function CreateButton(){ return new WinButton(); } public function CreateBorder(){ return new WinBorder(); }}?>

在這里例子中,工廠類實現了一組工廠方法。如果要增加新的功能,可以增加新的接口,讓新的工廠類實現這個接口即可,而無需修改現有的工廠類。

優缺點

優點

分離了具體的類使增加或替換產品族變得容易有利于產品的一致性

缺點

難以支持新種類的產品。這是因為AbstractFactory接口確定了可以被創建的產品集合。支持新各類的產品就需要擴展訪工廠接口,從而導致AbstractFactory類及其所有子類的改變。

標簽: PHP
相關文章:
主站蜘蛛池模板: 国产精品一区在线观看 | 91www在线观看 | 亚洲欧美日韩精品久久亚洲区 | 国产精品免费看 | 亚洲欧美日韩精品久久亚洲区 | 免费精品 | 久久久久久综合 | 日韩精品视频中文字幕 | 毛片网站在线观看视频 | 国产精品免费一区二区三区四区 | 国产在线一区二区三区 | 国产精品免费一区二区 | 亚洲综合激情 | 一级a爱片性色毛片免费 | 亚洲精品黄色 | 蜜桃视频一区二区三区 | 国产黄色在线 | 午夜免费在线观看 | 超碰免费观看 | 亚洲码欧美码一区二区三区 | 欧美成人精品激情在线观看 | 国产免费一区二区三区最新6 | 欧美大片一区 | 黄色国产大片 | 最新国产精品视频 | 久久aⅴ乱码一区二区三区 亚洲欧美综合精品另类天天更新 | 欧美日韩国产在线观看 | 免费 视频 1级 | 北条麻妃视频在线观看 | 亚洲精品电影在线 | 亚洲一区二区三区在线播放 | 国产亚洲精品久久19p | 伊人伊成久久人综合网站 | 在线观看免费av网站 | 国产 日韩 欧美 在线 | 国精产品一区一区三区免费完 | 久久久国产精品视频 | 精品国产一区二区三区久久久久久 | h视频在线播放 | www性色| 久草热8精品视频在线观看 午夜伦4480yy私人影院 |