Home  >  Article  >  Backend Development  >  PHP design pattern builder pattern

PHP design pattern builder pattern

不言
不言Original
2018-04-18 11:48:111667browse

This article introduces the builder pattern of PHP design pattern, which has certain reference value. Now I share it with you. Friends in need can refer to

Builder pattern ( Builder) is a mode that I think is more difficult to understand among the creational modes.

The builder pattern and the abstract factory pattern are somewhat similar in that they both create combinations, but abstract factories are used more often and builders are less commonly used.

The characteristic of the builder pattern is the separation of creation and presentation.

Continuing to take the game as an example, when we play the game to create heroes, we first abstract an abstract builder class, and then all heroes inherit this abstract class. The Hero class is the representation class of heroes, which is separated from creation. All heroes can be represented through this class.

If you need to add heroes, just add a class similar to Class GuanYu and switch on the client.

The recording code is as follows:

_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 = "拖刀计
"; } function HeroWeapon() { $this->_hero->_weapon = "青龙偃月刀
"; } function HeroHorse() { $this->_hero->_horse = "赤兔马
"; } function CreateHero() { return $this->_hero; } } /** 英雄接口类 * HeroApi */ Class HeroApi { function Create($_obj) { $_obj->HeroSkill(); $_obj->HeroWeapon(); $_obj->HeroHorse(); return $_obj->CreateHero(); } }
Create($guanyu);  
  
echo "关羽加入战场
"; $guanyuhero->Display();// 展示


##Output result:

Guan Yu joins the battlefield
The trick is: dragging the knife
The weapon is: Qinglong Yanyue Sword
The mount is: Red Rabbit Horse

Related recommendations:

PHP Design Pattern Prototype Pattern

PHP Design Pattern of singleton pattern

PHP design pattern of abstract factory


The above is the detailed content of PHP design pattern builder pattern. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn