php設計模式 (二)之工廠模式

2021-07-13 12:05:54 字數 1796 閱讀 2666

工廠模式

實現:定義

乙個用於建立物件的介面

,讓子類

決定例項化

哪乙個類。

應用場景:眾多子類並且會擴充、建立方法比較複雜。

工廠模式分為三種:簡單工廠、工廠方法、抽象工廠 ,三種工廠的區別是,

抽象工廠

由多條產品線

,而工廠方法

只有一條產品線

,是抽象工廠的簡化

。而工廠方法和簡單工廠相對,大家初看起來好像工廠方法增加了許多**但是實現的功能和簡單工廠一樣。但本質是,

簡單工廠

並未嚴格遵循設計模式的開閉原則,當需要

增加新產品時也需要修改工廠**

。但是工廠方法則嚴格遵守開閉原則,模式

只負責抽象工廠介面

,具體工廠交給客戶去擴充套件。在分工時,核心工程師負責抽象工廠和抽象產品的定義,業務工程師負責具體工廠和具體產品的實現。只要抽象層設計的好,框架就是非常穩定的。

<?php

/*** 優才網公開課示例**

** 工廠模式

** @author 優才網全棧工程師教研組

* @see

*///抽象產品

inte***ce person

//具體產品實現

class teacher implements person

}class student implements person

}//簡單工廠

class ******factory elseif ($type == 'student')

return $person;}}

//簡單工廠呼叫

class ******client

}//工廠方法

inte***ce commfactory

//具體工廠實現

class studentfactory implements commfactory

}class teache***ctory implements commfactory

}//工廠方法呼叫

class commclient

}//抽象工廠模式另一條產品線

inte***ce grade

//另一條產品線的具體產品

class grade1 implements grade

}class grade2 implements grade

}//抽象工廠

inte***ce abstractfactory

//具體工廠可以產生每個產品線的產品

class grade1teache***ctory implements abstractfactory

public function getgrade()

}class grade1studentfactory implements abstractfactory

public function getgrade()

}class grade2teache***ctory implements abstractfactory

public function getgrade()

}//抽象工廠呼叫

class factoryclient

function main()

}//簡單工廠

//******client::main();

//工廠方法

//commclient::main();

//抽象工廠

factoryclient::main();

?>

php設計模式 二 工廠模式

inte ce db 面向介面,只需要知道介面的呼叫,不需要知道介面具體的實現 在php裡面就有好幾種方法,mysql擴充套件,mysqli擴充套件,pdo擴充套件。我就是想要乙個物件用來以後的操作,具體要哪個,視情況而定嘍。既然你們都是連線資料庫的操作,你們就應該擁有相同的功能,建立連線,查詢,斷...

php設計模式之工廠模式

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

php設計模式之工廠模式

工廠模式的最大優點在於建立物件上面,就是把建立物件的過程封裝起來,這樣隨時可以產生乙個新的物件。減少 進行複製粘帖,耦合關係重,牽一發動其他部分 通俗的說,以前建立乙個物件要使用new 現在把這個過程封裝起來了。假設不使用工廠模式 那麼很多地方呼叫類a 就會這樣子建立乙個例項 new a 假設某天需...