PHP實現抽象工廠設計模式

2021-07-30 22:23:38 字數 1301 閱讀 9178

抽象工廠模式對同一類產品實現了封裝,上層應用(客戶端)只需呼叫相應的工廠介面來建立具體的產品,無需關心產品是如何建立。

對介面的規範化提供很好的一致性和擴充套件性。

要理解抽象工廠設計模式,需要先了解以下概念。(在之後的**中會體現)

以上的4個角色構成了乙個完整的抽象工廠設計模式

舉個栗子:

1、水果工廠這類的工廠(抽象工廠),它應該是生產水果的工廠,所以它有個生產水果方法createfruit(),這個就是抽象工廠給我們的概念(程式設計中理解為介面)。

2、水果工廠又分有很多種,比如生產蘋果的工廠、生產香蕉的工廠等等,這些工廠就是具體工廠。當然了,這些工廠肯定是水果工廠,而且肯定是生產水果的(不然都不好意思叫水果工廠),所以這些工廠都要實現水果工廠(抽象工廠)的生產水果方法createfruit()。

3、既然已經有水果生產出來了,那麼這些水果都有相同的屬性,比如名字、重量、顏色、口感等,這就是我們的抽象產品,定義某類產品的介面。

4、具體的產品(例如蘋果、香蕉)則是抽象工廠的最終產物。

/******抽象工廠******/

/** * 水果類工廠

*/abstract

class

fruitfactory

/******具體工廠******/

//蘋果工廠

class

extends

fruitfactory

}//香蕉工廠

class

bananafactory

extends

fruitfactory

}/******抽象產品******/

/*水果類產品*/

abstract

class

fruit

/******具體產品******/

/*蘋果*/

class

extends

fruit

}/*香蕉*/

class

banana

extends

}/******測試********/

//1、我們來到蘋果工廠

//2、告訴工廠,幫我們造乙個蘋果

//3、我們得到了乙個蘋果,可以使用它

//下面再去香蕉廠

$bananafactory = new bananafactory();

$banana = $bananafactory->createfruit();

$banana->name();//輸出 i am banana

學習php設計模式 php實現抽象工廠模式

抽象工廠模式 abstact factory 是一種常見的軟體設計模式。該模式為乙個產品族提供了統一的建立介面。當需要這個產品族的某一系列的時候,可以為此系列的產品族建立乙個具體的工廠類。一 意圖 抽象工廠模式提供乙個建立一系統相關或相互依賴物件的介面,而無需指定它們具體的類 gof95 二 抽象工...

PHP設計模式 抽象工廠

宣告 本系列部落格參考資料 大話設計模式 作者程杰。前面我們介紹了簡單工廠和工廠方法設計模式,今天我們學習最後乙個工廠 抽象工廠。案例 追mm少不了請吃飯了,去麥當勞,只管向服務員說 兩個b 就行了。麥當勞就是b 的abstractfactory,b 裡含有漢堡,雞翅和飲料.麥當勞或肯德基會根據b ...

PHP設計模式 抽象工廠

在學習過工廠方法之後,我所了解的工廠方法基本是去建立乙個物件,例如在玩遊戲的時候,建立了乙個關羽英雄,乙個張飛英雄這樣。但是有時候程式設計時可能需要建立一組物件,這就出現了第二種建立型設計模式 抽象工廠方法 abstractfactory 比方說,我在建立關羽的時候手上拿著青龍偃月刀,騎著赤兔馬。建...