码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之工厂模式

时间:2019-06-06 16:07:45      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:简单   就是   实例   方法   包含   style   优点   get   选择   

工厂模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

简单工厂模式与工厂模式区别:

  (1)简单工厂模式的优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类。

  (2)简单工厂模式违背开放-封闭原则

  (3)工厂模式实现时客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂模式的简单工厂模式的内部逻辑判断移到了客户端代码来进行。

案例:

<?php
interface Drink{
    function getDrinkName();
}

class AppleDrink implements Drink{
    function getDrinkName()
    {
        echo ‘苹果味饮料‘;
    }
}

class BananaDrink implements Drink{
    function getDrinkName()
    {
        echo ‘香蕉味饮料‘;
    }
}


interface FruitFactory{
    function makeDrink();
}

class AppleFactory implements FruitFactory{
    function makeDrink()
    {
        return new AppleDrink();
    }
}

class BananaFactory implements FruitFactory{
    function makeDrink()
    {
        return new BananaDrink();
    }
}

$appleFactory = new AppleFactory();
$apple = $appleFactory->makeDrink();
$apple->getDrinkName();

$bananaFactory = new BananaFactory();
$banana = $bananaFactory->makeDrink();
$banana->getDrinkName();

 

设计模式之工厂模式

标签:简单   就是   实例   方法   包含   style   优点   get   选择   

原文地址:https://www.cnblogs.com/wawjandcsws/p/10985059.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!