首頁 >後端開發 >php教程 >PHP設計模式之工廠方法

PHP設計模式之工廠方法

不言
不言原創
2018-04-18 11:37:151623瀏覽

這篇文章介紹的內容是關於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設計模式之工廠方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn