php設計模式之工廠模式

2021-07-02 07:43:05 字數 1355 閱讀 2530

工廠模式的最大優點在於建立物件上面,就是把建立物件的過程封裝起來,這樣隨時可以產生乙個新的物件。

減少**進行複製粘帖,耦合關係重,牽一發動其他部分**。

通俗的說,以前建立乙個物件要使用new

,現在把這個過程封裝起來了。

假設不使用工廠模式:那麼很多地方呼叫類a

,**就會這樣子建立乙個例項:

new a(),

假設某天需要把

a類的名稱修改,意味著很多呼叫的**都要修改。

建立乙個工廠(乙個函式或乙個類方法)來製造新的物件,

它的任務就是把物件的建立過程都封裝起來,

建立物件不是使用new

的形式了。而是定義乙個方法,用於建立物件例項。

工廠方法:

比如你的工廠叫做「香菸工廠」,那麼可以有「七匹狼工廠」「中華工廠」等,但是,這個工廠只生廠一種商品:香菸;

抽象工廠:無法描述它到底生產什麼產品,它生產很多態別的產品(

所以抽象工廠就會生成子工廠)。

你的工廠是綜合型的,是生產「一系列」產品,而不是「乙個」,比如:生產「香菸」,還有「啤酒」等。然後它也可以有派生出來的具體的工廠,但這些工廠都是生產這一系列產

品,只是可能因為地域不一樣,為了適應當地人口味,味道也不太一樣。

工廠模式:理解成只生成一種產品的工廠。比如生產香菸的。

工廠方法:工廠的一種產品生產線 。比如鍵盤的生成過程。

<

php

/**

* 工廠方法模式*

* 定義乙個用於建立物件的介面

,讓子類決定將哪乙個類例項化

,使用乙個類的例項化延遲到其子類*/

/* class dbfactory

} }

*/ class dbfactory

} inte***ce db

class mysqldb implements db

publicfunction connect() 

publicfunctionexec()  }

class postgredb implements db

publicfunction connect() 

publicfunctionexec()   } 

class mssqldb implements db

publicfunction connect() 

publicfunctionexec()  }

$omysql= dbfactory::create("mysql");

$opostgre= dbfactory::create("postgre");

$omssql= dbfactory::create("mssql");

php設計模式之工廠模式

一直都對php的設計模式有著一種特殊的 情結 從最開始接觸到的單例模式,到經典的mvc設計模式,每次的接觸都讓我為之驚奇。買了本php設計模式在家看,發現,都是專有名詞,再加上太專業的術語,讓我沒有看下去的勇氣。無意之中逛論壇,發現乙個部落格,關於php的五種設計模式,其中就有工廠模式。看完後,第一...

php模式設計之 工廠模式

那麼何為工廠模式?從名字來看,似乎看不出什麼端倪。工廠模式,和生產有關?還是和生產流程 子了,所謂工廠模式還真和生產有關。生產什麼呢?生產出來的是乙個例項物件。通過什麼裝置生產?通過乙個工廠類生產。怎麼生產呢?工廠類呼叫自身靜態方法 來生產物件例項。工廠模式有乙個關鍵的構造,根據一般原則命名為fac...

php設計模式之工廠模式

在 1994 年,由 erich gamma richard helm ralph johnson 和 john vlissides 四人合著出版了一本名為 design patterns elements of reusable object oriented software 中文譯名 設計模式...