设计模式之工厂模式

Posted wawjandcsws

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之工厂模式相关的知识,希望对你有一定的参考价值。

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

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

  (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();

 

以上是关于设计模式之工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

Delphi 设计模式:《HeadFirst设计模式》Delphi7代码---工厂模式之简单工厂

设计模式之简单工厂模式

设计模式之简单工厂模式

Java代码实现设计模式之工厂模式

设计模式之简单工厂模式

设计模式之工厂模式