這篇文章介紹的內容是關於PHP設計模式之工廠方法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下
今天著重學習了一下工廠方法(FactoryMethod)這個設計模式,以下是自己的一些學習心得和體會,做一個記錄:
工廠方法屬於23種模式中的創建型模式之一,由於之前對簡單工廠有過一些了解,而工廠方法是簡單工廠的一種演變,從簡單工廠中可以看出,一個與客戶端交互的類裡面要承擔多個不同類別的創建,是一個相當累的過程,而工廠方法就是在其基礎上將這個交互類別進行拆分,讓各個類別可以獨立創建,以便於水平擴展。
以創建遊戲角色為例:
<?php /** Hero * 英雄接口 */ interface Hero { function Create(); } /** GuanYu 关羽 * 具体英雄类 */ Class GuanYu implements Hero { function Create() { echo "关羽加入战场。。。<br/>"; } } /** ZhangFei 张飞 * 具体英雄类 */ Class ZhangFei implements Hero { function Create() { echo "张飞加入战场。。。<br/>"; } } /** FactoryMethod * 工厂方法接口 */ interface FactoryMethod { function CreateHero(); } /** GuanYuFactory * 关羽工厂类 */ Class GuanYuFactory implements FactoryMethod { function CreateHero() { return new GuanYu(); } } /** ZhangFeiFactory * 张飞工厂类 */ Class ZhangFeiFactory implements FactoryMethod { function CreateHero() { return new ZhangFei(); } }
<?php // 工厂方式 客户端 index.php header("Content-Type:text/html;charset=utf-8"); require_once "FactoryMethod.php"; // 各自调用各自的工厂方法进行创建 $GYF = new GuanyuFactory(); $ZFF = new ZhangFeiFactory(); // 调用各自工厂方法的创建英雄方法 $GuanYu = $GYF->CreateHero(); $ZhangFei = $ZFF->CreateHero(); // 调用各自创建英雄方法 $GuanYu->Create(); $ZhangFei->Create();
相關推薦:
以上是PHP設計模式之工廠方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!