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();
  • 相关阅读:
    UVALive
    hdu 3869 Color the Simple Cycle (kmp+polya计数)
    zoj 3794 Greedy Driver
    zoj 3795 Grouping
    ASP.NET Core 简介
    ASP.NET Core 基础教程
    iOS ShareSDK Scheme
    微博授权失败 redirect_uri_mismatch
    集成友盟分享SDK报错
    获取设备实际宽度
  • 原文地址:https://www.cnblogs.com/wawjandcsws/p/10985059.html
Copyright © 2011-2022 走看看