當前位置:
首頁 > 知識 > PHP設計模式:簡單工廠

PHP設計模式:簡單工廠

簡單工廠

簡單工廠模式的工廠類一般是使用靜態方法,通過接收的參數的不同來返回不同的對象實例。

也就是使用的時候通過傳參來確定生成不同的對象。

簡單工廠UML圖:

PHP設計模式:簡單工廠

簡單工廠需要有3個角色:

  • Product介面類:用於定義產品規範;
  • 具體的產品實現,例如ConcreateProductA、ConcreateProductB;
  • 簡單工廠類SimpleFactory:用於生成具體的產品。

使用的時候通過傳參數給簡單工廠類,可以生成想要的產品。

代碼: ICar.php:定義產品規範:

namespace YjcSimpleFactory;

interface ICar
{
public function driver;
}

具體產品實現:

namespace YjcSimpleFactory;

class Benz implements ICar
{
public function driver
{
echo "benz driver.";
}
}

class Bmw implements ICar
{
public function driver
{
echo "bmw driver.";
}
}

簡單工廠類SimpleFactory:

namespace YjcSimpleFactory;

class SimpleFactory
{
public static function makeCar($type){
switch ($type){
case "benz":
return new Benz;
break;
case "bmw":
return new Bmw;
break;
default:
throw new Exception("not support type!");
break;
}
}
}

參數代碼:

$car = SimpleFactory::makeCar("benz");
$car->driver;

簡單工廠的優點/缺點:

優點:簡單工廠模式能夠根據外界給定的信息,決定究竟應該創建哪個具體類的對象。明確區分了各自的職責和權力,有利於整個軟體體系結構的優化。

缺點:很明顯工廠類集中了所有實例的創建邏輯,容易違反GRASPR的高內聚的責任分配原則。


參考:

1、設計模式:簡單工廠、工廠方法、抽象工廠之小結與區別 - superbeck的專欄 - 博客頻道 - CSDN.NET

http://blog.csdn.net/superbeck/article/details/4446177

2、簡單工廠、工廠方法、抽象工廠、策略模式、策略與工廠的區別 - Danny Chen - 博客園

http://www.cnblogs.com/zhangchenliang/p/3700820.html

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

《基於Node.js實現簡易聊天室系列之詳細設計》
libpng處理png圖片(二)
我們用了不到200行代碼實現的文件日誌系統,極佳的IO性能和高並發支持,附壓力測試數據

TAG:科技優家 |

您可能感興趣

基於LabVIEW的PEMFC單電池電壓巡檢系統設計
用PPT做拼圖設計
CdG PLAY的愛心設計師,這次聯合NBA球衣大改造!
CUUNION CONCEPT FAIR 設計聯合概念展:尋找「中國版「設計
甜品店LOGO設計合集
設計師黃譯作品:J HOUSE
設計書單 | 聊一聊LOGO設計
平面設計:WUWENQIAONI
基於Axure的移動端APP產品設計規範
30個創意的手機APP表單UI界面設計
中國建筑西南設計研究院設計六院—標誌設計·YSYdesign·LOGO設計案例
平面設計 品牌LOGO文字設計案例分享
摺紙風格LOGO設計合集
中式餐廳LOGO設計合集
工業設計中產品族設計DNA探討
奶茶品牌LOGO設計合集
產品設計師 REID SCHLEGEL 的草稿圖繪本
DIESEL 正式啟動THE RED TAG 設計計劃
Dior、范思哲、CHANEL世界著名服裝設計師背後的工作狀態
數字8 LOGO設計合集