zoukankan      html  css  js  c++  java
  • 《设计模式

    今天没听歌,明天就双休了,开森~

    还是拿《大话设计模式》这里面的实例来开始学习今天的设计模式

    小李一直经营者一家饭店,一直以好吃不贵著称,随着业务越来越大,在其他几家也开了分店。

    但是这几家店生意并不好,后来才知道是味道太差,之后小李发现,是厨师在做餐时不按照自己的规范走,才会做出味道怪怪的饭来。

    所以,小李痛定思痛,回来指定了一串的体系,规定每道餐必须按照这个来(建造),否则就走人

    1:构建产品类 - 定义一道餐的抽象步骤 - 基础步骤,必须执行

    /**具体产品角色  饭
     * Class Meal
     */
    class Meal
    {
        public function exec()
        {
            echo "配菜:{$this->food}";
            echo PHP_EOL;
            echo "调料:{$this->seasoning}";
            echo PHP_EOL;
            echo "火候:{$this->fire}";
            echo PHP_EOL;
        }
    }

    2:真正的管理办法,必须每家都准守

    /** 做饭的建造者(生成器)
     * Class BirdBuilder
     */
    abstract class MealBuilder
    {
        function __construct()
        {
            $this->meal = new Meal();
        }
     
        abstract function BuildFood();
        abstract function BuildSeasoning();
        abstract function BuildFire();
    }
     

    3:做到具体的菜

    /**具体 菜 的建造者(生成器)   宫保鸡丁
     * Class GonBaoJiDing
     */
    class GonBaoJiDing extends MealBuilder
    {
     
        function BuildFood()
        {
            $this->meal->food = "肉、胡萝卜、、";
        }
     
        function BuildSeasoning()
        {
            $this->meal->seasoning = "盐,辣椒、、、";
        }
     
        function BuildFire()
        {
            $this->meal->fire = "大火";
        }
    }

    4:指定执行者

    /**指挥者
     * Class Director
     */
    class Director
    {
        function Construct($_builder)
        {
            $_builder->BuildFood();
            $_builder->BuildSeasoning();
            $_builder->BuildFire();
            return $_builder->GetMeal();
        }
    }

    5:用户(客户端) - 点餐

    $director = new Director();
     
    echo "宫保鸡丁的组成:";
     
    $GonBaoJiDing = $director->Construct(new GonBaoJiDing());
    $blue_bird->exec();
  • 相关阅读:
    centos7安装rlwrap
    Linux CentOS 7的图形界面安装(GNOME、KDE等)
    在oracle下我们如何正确的执行数据库恢复
    Viewer.js 图片预览插件使用
    深拷贝和浅拷贝
    ES6 export,import报错
    Yarn 命令详解
    npm命令 VS yarn命令
    Windows下nginx作为静态资源服务器使用
    关于Vue脚手架写法的问题
  • 原文地址:https://www.cnblogs.com/25-lH/p/10045254.html
Copyright © 2011-2022 走看看