设计模式之工厂模式

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

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

  (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();
原文地址:https://www.cnblogs.com/wawjandcsws/p/10985059.html