工廠方法模式核心是工廠類別不再負責所有物件的創建,而是將具體創建的工作交給子類別去做,成為一一個抽象工廠角色,它僅負責給出具體工廠類別必須實現的接口,而不接觸哪一個產品類別應當被實例化這種細節,我們可以深入探討:
相關推薦:《PHP中什麼是設計模式?什麼是單例?怎麼用? 》
工廠:
$a = new Dog('abc');
介面中定義一一些方法
實作介面的類別實作這些方法
工廠類別:用以實例化物件
優點:為系統結構提供了靈活的動態擴展機制。方便維護
我們以程式碼示範什麼是工廠模式,首先新建一個文件,我們在文件裡面創建一個接口,接口裡面有兩個方法,緊接著我們寫兩個類實現此接口,然後我們需要把剛剛定義的兩個方法寫出來,然後我們在寫一個類,那麼,我們如何將他們寫在一個工廠中,透過工廠創建我們定義的兩個對象,我們先建立一個工廠類,然後在類裡面寫一個靜態方法,然後給我們傳遞一個類型,然後我們來選擇類型,如果我們的類型是person那麼我們就創建一個person,如果說我們要創建人類的對象,我們只需要透過工廠來創建就行了,具體程式碼如下:
<?php interface Skill { function family(); function pome(); } class Person implements Skill { function family() { echo '如果努力有用的话,还要天才干什么<br />'; } function pome() { echo '爱恨痴狂,抵不过沧海一笑'; } } class JingLing implements Skill { function family( ) { echo '为什么会痛苦,一直微笑就好了<br />' ; } function buy() { echo '嘴上说不要,但你的眼睛很诚实嘛<br />'; } } class Factory { static function createHero($type) { switch ($type) { case'person' : return new Person(); break; case'jingling' : return new JingLing(); break; } } } $person = Factory::createHero('person'); $jing = Factory::createHero('jingling');
以上就是我們所謂的工廠模式;
#工廠方法:
<?php interface Tell { function pome(); function receive(); } class shiju implements TeLL { function pome( ) { echo '没有心,就不会受伤'; } function receive( ) { echo'守护爱人的心,因恐惧失去而无悔'; } } class HuaWei implements TeLL { function call() { echo '不知道你的名字,但知道你的死期'; } function receive( ) { echo '花有再开的那天,人有重逢的时候吗?'; } } //工厂类只负责规定接口,具体的实现交给子类 interface Factory { static function createPhone( ); } class XiaoFactory implements Factory { static function createPhone( ) return new XiaoMi (); } } class HuaWeiFactory implements Factory { static function createPhone() { return new HUawei(); } }
PHP視頻教程》
以上是PHP中什麼是工廠模式以及工廠方法模式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!