美文网首页
PHP设计模式:建造者模式

PHP设计模式:建造者模式

作者: Zed_790e | 来源:发表于2019-06-21 17:19 被阅读0次

    前言

    建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

    代码

    <?php
    
    //定义一个抽象类:装备
    abstract class Equipment
    {
        //定义五个抽象方法 头盔,衣服,下装,腰带,护腕,鞋子,首饰,武器,坐骑
        abstract function helmets();
    
        abstract function clothes();
    
        abstract function jackets();
    
        abstract function belt();
    
        abstract function wrists();
    
        abstract function shoes();
    
        abstract function jewelry();
    
        abstract function weapons();
    
        abstract function mounts();
    }
    
    //定义一个人民币玩家
    class RmbPlayer extends Equipment
    {
    
        public function helmets()
        {
            echo '极品帝皇头盔:防御+9999' . PHP_EOL;
        }
    
        public function clothes()
        {
            echo '极品帝皇上装:防御+8888' . PHP_EOL;
        }
    
        public function jackets()
        {
            echo '极品帝皇下装:防御+7777' . PHP_EOL;
        }
    
        public function belt()
        {
            echo '极品帝皇腰带:气血+9999' . PHP_EOL;
        }
    
    
        public function wrists()
        {
            echo '极品帝皇护腕:气血+8888' . PHP_EOL;
        }
    
        public function shoes()
        {
            echo '极品帝皇戒指:内力+9999' . PHP_EOL;
        }
    
        public function jewelry()
        {
            echo '极品帝皇鞋子:移动速度+3000' . PHP_EOL;
        }
    
        public function weapons()
        {
            echo '帝皇巨兵:攻击+99999' . PHP_EOL;
        }
    
        public function mounts()
        {
            echo '上古神兽--菜虚鲲 技能=> 
            唱:攻击时给予友方精神亢奋BUFF。
            跳:有一定几率闪避地方攻击,
            rap,攻击时附加精神伤害
            隐藏技能绿狮含:召唤上古绿色雄狮含住敌方,成功含住后有一定几率使敌方陷入鬼畜状态' . PHP_EOL;
        }
    }
    
    //定义一个普通玩家
    class NormalPlayer extends Equipment
    {
    
        public function helmets()
        {
            echo '含羞头巾:作为loser的你只能绑一根草' . PHP_EOL;
        }
    
        public function clothes()
        {
            echo '一身胸毛:可能能起到御寒作用' . PHP_EOL;
        }
    
        public function jackets()
        {
            echo '破洞裤:陈旧的鹿皮' . PHP_EOL;
        }
    
        public function belt()
        {
            echo '树皮腰带:偶尔还能吸引蚂蚁' . PHP_EOL;
        }
    
    
        public function wrists()
        {
            echo '红丝带:纪念品' . PHP_EOL;
        }
    
        public function shoes()
        {
            echo '草环戒指:气血+1' . PHP_EOL;
        }
    
        public function jewelry()
        {
            echo '破旧的帆布鞋:移动速度+1' . PHP_EOL;
        }
    
        public function weapons()
        {
            echo '小木棒:攻击+1' . PHP_EOL;
        }
    
        public function mounts()
        {
            echo '巨大的蚂蚁:一只变异的蚂蚁,偶尔会嗜主' . PHP_EOL;
        }
    }
    
    class BuilderFace
    {
        public $face;
    
        public function __construct($face)
        {
            $this->face = $face;
        }
    
        //定义一个创建装备的方法
        public function createFace()
        {
            $this->face->helmets();
            $this->face->clothes();
            $this->face->jackets();
            $this->face->wrists();
            $this->face->shoes();
            $this->face->jewelry();
            $this->face->weapons();
            $this->face->mounts();
        }
    }
    
    $handsome = new BuilderFace(new RmbPlayer());
    echo 'RMB玩家' . PHP_EOL;
    $handsome->createFace();
    echo '-------------' . PHP_EOL;
    echo '普通玩家' . PHP_EOL;
    $handsome = new BuilderFace(new NormalPlayer());
    $handsome->createFace();
    

    输出

    image.png

    相关文章

      网友评论

          本文标题:PHP设计模式:建造者模式

          本文链接:https://www.haomeiwen.com/subject/bdjuqctx.html