zoukankan      html  css  js  c++  java
  • 设计模式之工厂模式

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

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

      (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();
  • 相关阅读:
    ​DBEngines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
    深入了解 BTree 和 B+Tree 的区别
    exec详解
    javascript之property's attributes
    极客公园之李彦宏讲话要点
    C++之auto_ptr
    javascript之属性状态控制Method
    ARM寄存器简介
    linux之fcntl
    http之100continue
  • 原文地址:https://www.cnblogs.com/wawjandcsws/p/10985059.html
Copyright © 2011-2022 走看看