PHPデザインパターン装飾モード

不言
リリース: 2023-03-24 10:06:02
オリジナル
1156 人が閲覧しました

この記事では、特定の参考値を持つ PHP デザイン モードの装飾モードを紹介します。必要な友達はそれを参照できます

デコレーター も構造モードに属します。 1 つ目は、動的にです。オブジェクトに追加の責任を追加します。 私たちの生活の中で最も一般的な例は、ゲームをプレイするときに常に同行するキャラクターの装備とスキンです。男の子も女の子も関係なく、ゲームをする人なら誰もが買ったことがあると思います。最も一般的なのは、一部のゲーム開発者がプレイヤーに購入を促すために、武器、服、靴、指輪などの装備を作成することです。これらの装備は、着用すると見た目が良いだけでなく、追加の属性も備えています。

この例は、他のクラスに影響を与えることなく、他の特定の機器クラスを動的に追加することを特徴とする典型的なデコレータパターンの応用です

<?php  
           
/** 构件接口类      
 *  interface IComponent          
 */     
interface IComponent  
{  
    function Display();  
}  
  
/** 人物类     
 *  Person         
 */    
Class Person implements IComponent  
{  
    private $name;  
  
    function __construct($name)  
    {  
        $this->name = $name;  
    }  
  
    function Display()  
    {  
        echo "{$this->name}当前装备:";  
    }  
  
}  
  
/** 装备类    
 *  Equipment         
 */   
Class Equipment implements IComponent  
{  
    protected $component;  
  
    function Decorator(IComponent $component)  
    {  
        // 动态添加  
        $this->component = $component;  
    }  
  
    function Display()  
    {  
        if(!empty($this->component)){  
            $this->component->Display();  
        }  
    }     
}  
  
  
/** 具体装备 武器类    
 *  Weapon        
 */   
Class Weapon extends Equipment  
{  
    function Display(){  
        parent::Display();  
        echo "龙泉剑 ";  
    }  
}  
  
/** 具体装备 戒指类    
 *  Ring        
 */   
Class Ring extends Equipment  
{  
    function Display(){  
        parent::Display();  
        echo "复活戒指 ";  
    }  
}  
  
/** 具体装备 鞋子类    
 *  Shoes       
 */   
Class Shoes extends Equipment  
{  
    function Display(){  
        parent::Display();  
        echo "御风履 ";  
    }  
}  
  
// 如果需要可以继续添加具体的装备 腰带 裤子 手镯
ログイン後にコピー
<?php  
  
// 装饰器模式 index.php  
header("Content-Type:text/html;charset=utf-8");  
require_once "Decorator.php";  
  
// 创建人物  
$people = new Person("战士");  
  
// 武器  
$Weapon = new Weapon();  
// 戒指  
$Ring = new Ring();  
// 鞋子  
$Shoes = new Shoes();  
  
// 动态添加函数  
$Weapon->Decorator($people);  
$Ring->Decorator($Weapon);  
$Shoes->Decorator($Ring);  
  
// 显示  
$Shoes->Display();
ログイン後にコピー


出力結果:


战士当前装备:龙泉剑 复活戒指 御风履
ログイン後にコピー
推奨事項:


PHP デザイン パターン コンビネーション モード

PHP デザイン パターン ブリッジ モード

PHP デザイン パターン アダプター モード

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

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