美文网首页
php设计模式(1) 工厂模式

php设计模式(1) 工厂模式

作者: 小杨不是小羊 | 来源:发表于2018-08-15 17:40 被阅读0次

    php设计模式(1) 工厂模式

    工厂模式

    工厂模式属于类创建型模式。
    
    在工厂模式中,工厂父类负责定义 创建具体产品对象的公共接口,而工厂子类负责生产具体的产品对象。
    

    优点

    • 将创建具体对象的步骤简化了,你只需要告诉工厂你需要什么,其他的都由工厂直接搞定,你只负责使用即可。
    • 如果你想添加一个新产品 只需要 修改/拓展 工厂类就可以了

    代码实现

    工厂类

    class Factory
    {
        public static function getProduct($type)
        {
            $obj = null;
    
            switch ($type) {
                case "Dogs":
                    $obj = new Dog();
                    break;
                case "Books":
                    $obj = new Book();
                    break;
                case "Wine":
                    $obj = new Wine();
                    break;
                default:
                    $obj = null;
                    break;
            }
    
            return $obj;
        }
    }
    

    抽象产品

    interface Goods
    {
        public function getList();
    }
    

    具体产品

    class Book implements Goods
    {
        public function getList()
        {
            return [
                0 => "语文书",
                1 => "数学书",
                2 => "英语书",
                3 => "唐吉坷德",
                4 => "尼尔斯骑鹅旅行记",
            ];
        }
    }
    

    调用

    $books = Factory::getProduct('Books');
    
    var_dump($books->getList());
    

    结果

    array (size=5)
      0 => string '语文书' (length=9)
      1 => string '数学书' (length=9)
      2 => string '英语书' (length=9)
      3 => string '唐吉坷德' (length=12)
      4 => string '尼尔斯骑鹅旅行记' (length=24)

    相关文章

      网友评论

          本文标题:php设计模式(1) 工厂模式

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