ホームページ > バックエンド開発 > PHPチュートリアル > PHP デザイン パターン ファクトリ メソッド

PHP デザイン パターン ファクトリ メソッド

不言
リリース: 2023-03-24 09:50:02
オリジナル
1640 人が閲覧しました

この記事の内容は、PHP デザイン パターンのファクトリ メソッドに関するもので、一定の参考価値がありますので、必要な友達に共有してください。

今日はファクトリ メソッド (FactoryMethod) を学習しました。 ) このデザインパターン、以下は私の学習経験と経験の一部です。記録してください:

ファクトリーメソッドは、以前に簡単なファクトリーについてはある程度理解しているので、23のパターンの中の作成パターンの1つです。このメソッドは、単純なファクトリの進化版であり、クライアントと対話するクラスが複数の異なるクラスを作成する必要があることがわかります。これは、ファクトリ メソッドに基づいています。インタラクション クラスは分割されており、各クラスを独立して作成して水平方向の拡張を容易にできます。

ゲーム キャラクターの作成を例に挙げます:

<?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 デザイン パターン Simple Factory



以上がPHP デザイン パターン ファクトリ メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート