php設計模式之建立型 工廠(簡單工廠)

2021-09-24 08:06:31 字數 1257 閱讀 9782

顧名思義,此篇介紹工廠模式中的簡單工廠,工廠模式屬於建立型模式,而工廠模式分為簡單工廠,靜態工廠,抽象工廠,由淺到深,上篇介紹了最基本的單例,而簡單工廠也是工廠模式裡最基本的。

優點:例項化物件,根據引數獲取對應的物件,避免直接例項化,降低耦合。

缺點:需知所有的型別,不符合設計模式的開閉原則,當型別增加,工廠也需要修改。

複製**

api: 用於構建使用者功能,抽象介面,只負責抽象,不負責實現。

achieveapi: 功能物件,用於實現介面。

factory: 用於生產(建立)功能物件。

複製**

還是以故事的形式來敘述。 昨天是端午節日,放假了,小陳要回家,回家要用到車,但是回家的方式有很多種,不知道該開車回,還是坐車,還是騎自行車回。

1、功能介面

class

api }

複製**

2、實現功能的工具

// 開車

class

carimplements

api }

// 坐車

class

bycar

implements

api }

// 騎車

class

ridecar

implements

api }

複製**

3、構建工廠

class

easyfactory}}

複製**

4、測試

$xiaochen1 = easyfactory::getfactory(1); // 開車

$xiaochen1->gohome();

$xiaochen2 = easyfactory::getfactory(2); // 坐車

$xiaochen2->gohome();

$xiaochen2 = easyfactory::getfactory(3); // 騎車

$xiaochen2->gohome();

複製**

以上方法就是簡單的工廠模式,在使用時直接進行呼叫,不需要知道建立的邏輯,想開車回,直接去開就可以,下次自己沒時間,家裡人也直接能開,不用管車是怎麼造出來的(前提是知道有個車),一般簡單工廠是用來隔離實現,讓外部只能通過特定的介面或者方法來操作。

設計模式 建立型之簡單工廠模式

簡單工廠模式又叫靜態工廠模式。首先,它並不屬於23種gof模式,23種gof中只有工廠模式和抽象工廠模式,但簡單工廠模式是工廠模式和抽象工廠模式的基礎,能更有助於我們理解後面兩者。簡單工廠模式的主要目的是通過不同引數獲取不同類的例項,它的主要實現原理是專門定義乙個工廠類,來建立其他類的例項,被建立的...

建立型設計模式之簡單工廠模式

當某產品有一些種類且種類不是特別多的情況下,可以選擇使用簡單工廠來建立所需產品 物件 而不需要關心具體的建立細節,相對來說便於後面的維護和擴充套件 必須增加產品種類不需要改動太多之前的 這就是乙個簡單工廠簡單實現,有人可能會說不這麼用不行麼,直接new乙個物件還省了很多 其實卻實可以使用設計模式的同...

建立型設計模式之簡單工廠模式

建立型設計模式之簡單工廠模式 由乙個工廠物件決定建立那一種產品類的例項,根據自變數的不同返回不同的產品類。解決問題 解決多重簡單物件重複建立的問題,但是不能解決新建產品型別的問題 開閉原則 新增新產品的問題可以在簡單工廠模式再次進行抽象化處理,使用抽象工廠設計模式。簡單工廠模式參與角色 工廠類角色 ...