php實現設計模式之 簡單工廠模式

2022-02-15 16:33:48 字數 1048 閱讀 1630

作為物件的建立模式,用工廠方法代替new操作。

簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法模式,但不屬於23種gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。

工廠類,包含工廠方法,由引數決定例項化哪一種物件

多種類,均含同一方法,實現具體業務

多種類繼承一抽象類,抽象方法其子類必須都實現

uml類圖如下

/* * 工廠類,裡面包含工廠方法,代替new操作,由引數決定建立哪一種物件

*/class operator

public function getresult()

return $model->result(); }}

/* * 抽象類,其子類必須實現運算方法

*/abstract class poper

abstract function result();

}//子類,負責具體業務實現

class add extends poper

}class jian extends poper

}class cheng extends poper

}class chu extends poper

return $this->a/$this->b; }}

?>

客戶端只需要輸入引數,不關心物件的建立(交給了工廠方法)。區別於策略模式,策略模式客戶端自己決定使用哪一種演算法類

試想一下:現在新增乙個類。簡單工廠模式需要寫這個類,同時修改工廠類,修改工廠方法的邏輯。而策略模式只需要寫這個類即可,客戶端就可以替換了。

簡單工廠方法所能建立的類只能是事先考慮到的,如果需要新增新的類,則就需要改變工廠類了。新增的類很多時,工廠方法邏輯判斷多,蔓延維護困難。

使用場景 

工廠類負責建立的物件比較少而且事先知道所有類;(一般不多於5個)

客戶只知道傳入工廠類的引數,對於如何建立物件(邏輯)不關心

php 設計模式之簡單工廠模式

摘要 學習php,不知道工廠模式,怎麼去看框架原始碼,怎麼能夠透徹理解php這門語言呢?1 類的宣告 一些修飾類關鍵字 class 類名修飾類的關鍵字 abstract final 訪問控制修飾符包括這三個 public private protect 關鍵字,用來修飾類 成員屬性 成員方法,使它們...

php設計模式之簡單工廠模式

簡單工廠模式 抽象基類 類中定義抽象一些方法,用以在子類中實現 繼承自抽象基類的子類 實現基類中的抽象方法 工廠類 用以例項化所有相對應的子類 定義個抽象的類,讓子類去繼承實現它 abstract class operation 加法類 class operationadd extends oper...

PHP設計模式之簡單工廠模式

先從簡單工廠入門,不管是面試還是被他人面試,在問到設計模式的時候,大多數人都會提到工廠模式。毫無疑問,工廠相關的幾種模式在設計模式中是最出名的也是應用比較廣泛的一種模式。在gof設計模式中也都是屬於建立型的模式。但是,能夠說明白簡單工廠 工廠模式 抽象工廠模式這三種模式的人還真能讓面試官刮目相看。這...