この記事は、PHP デザイン パターンのビルダー モードを紹介します。これは、必要な友人に参考にしていただけると思います。創作パターンを理解するのが難しい。
ビルダー パターンと抽象ファクトリ パターンは、どちらも組み合わせを作成するという点で似ていますが、抽象ファクトリがより頻繁に使用され、ビルダーはあまり使用されません。 ビルダーパターンの特徴は、作成とプレゼンテーションが分離されていることです。
記録コードは次のとおりです:
<?php Class Hero { // 技能 public $_skill; // 武器 public $_weapon; // 坐骑 public $_horse; /** 英雄表示方法,不同英雄又不同表示 * Display */ function Display() { echo "绝招是:{$this->_skill}"; echo "武器是:{$this->_weapon}"; echo "坐骑是:{$this->_horse}"; } } /** 英雄建造器 抽象类 * abstract HeroBuilder */ abstract Class HeroBuilder { protected $_hero; function __construct() { $this->_hero = new Hero(); } //抽象英雄绝招方法 abstract function HeroSkill(); //抽象英雄武器方法 abstract function HeroWeapon(); //抽象英雄坐骑方法 abstract function HeroHorse(); // 创建英雄方法 abstract function CreateHero(); } /** 关羽英雄类 继承抽象类必须完成抽象方法 * GuanYu */ Class GuanYu extends HeroBuilder { function HeroSkill() { $this->_hero->_skill = "拖刀计<br/>"; } function HeroWeapon() { $this->_hero->_weapon = "青龙偃月刀<br/>"; } function HeroHorse() { $this->_hero->_horse = "赤兔马<br/>"; } function CreateHero() { return $this->_hero; } } /** 英雄接口类 * HeroApi */ Class HeroApi { function Create($_obj) { $_obj->HeroSkill(); $_obj->HeroWeapon(); $_obj->HeroHorse(); return $_obj->CreateHero(); } }
<?php // 建造者模式 index.php header("Content-Type:text/html;charset=utf-8"); require_once "Builder.php"; // 英雄接口类 $obj = new HeroApi(); // 创建关羽英雄对象 以后想用什么就创建什么 $guanyu = new GuanYu(); // 创建加入战场 $guanyuhero = $obj->Create($guanyu); echo "关羽加入战场<br/>"; $guanyuhero->Display();// 展示
関羽が戦場に参加
コツは: ナイフをドラッグすることです武器は: Qinglong Moon Sword
マウントは: Red Rabbit Horse
関連する推奨事項:
PHP デザイン パターン - プロトタイプ パターン
以上がPHP デザイン パターン ビルダー パターンの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。