• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP设计模式之工厂方法设计模式实例分析

    本文实例讲述了PHP设计模式之工厂方法设计模式。分享给大家供大家参考,具体如下:

    一、什么是工厂方法模式

    作为一种创建型设计模式,工厂方法模式就是要创建“某种东西”。对于工厂方法,要创建的“东西”是一个产品,这个产品与创建它的类之间不存在绑定。实际上,为了保持这种松耦合,客户会通过一个工厂发出请求,再由工厂创建所请求的产品。利用工厂方法模式,请求者只发出请求,而不具体创建产品。

    二、什么时候使用工厂方法模式

    如果实例化对象的子类可能改变,就要使用工厂方法模式。

    三、一般工厂方法模式

    使用一般工厂方法模式时,客户只包含工厂的引用,一个工厂生产一种产品。增加一种产品的同时需要增加一个新工厂类和一个新产品类。

    ?php
    /**
    *  一般工厂方法设计模式
    **/
    //工厂抽象类
    abstract class Factory
    {
      protected abstract function produce();
      public function startFactory()
      {
        $pro = $this->produce();
        return $pro;
      }
    }
    //文本工厂
    class TextFactory extends Factory
    {
      protected function produce()
      {
        $textProduct = new TextProduct();
        return $textProduct->getProperties();
      }
    }
    //图像工厂
    class ImageFactory extends Factory
    {
      protected function produce()
      {
        $imageProduct = new ImageProduct();
        return $imageProduct->getProperties();
      }
    }
    //产品类接口
    interface Product
    {
      public function getProperties();
    }
    //文本产品
    class TextProduct implements Product
    {
      private $text;
      function getProperties()
      {
        $this->text = "此处为文本";
        return $this->text;
      }
    }
    //图像产品
    class ImageProduct implements Product
    {
      private $image;
      function getProperties()
      {
        $this->image = "此处为图像";
        return $this->image;
      }
    }
    //客户类
    class Client
    {
      private $textFactory;
      private $imageFactory;
      public function __construct()
      {
        $this->textFactory = new TextFactory();
        echo $this->textFactory->startFactory() . 'br />';
        $this->imageFactory = new ImageFactory();
        echo $this->imageFactory->startFactory() . 'br />';
      }
    }
    $client = new Client();
    /*运行结果:
    此处为文本
    此处为图像
    */
    ?>
    
    

    四、参数化工厂方法模式

    使用参数化工厂方法模式时,客户包含工厂和产品的引用,发出请求时需要指定产品的种类,一个工厂生产多种产品。增加一种产品时只需要增加一个新产品类即可。

    ?php
    /**
    *  参数化工厂方法设计模式
    **/
    //工厂抽象类
    abstract class Factory
    {
      protected abstract function produce(Product $product);
      public function startFactory(Product $product)
      {
        $pro = $this->produce($product);
        return $pro;
      }
    }
    //工厂实现
    class ConcreteFactory extends Factory
    {
      protected function produce(Product $product)
      {
        return $product->getProperties();
      }
    }
    //产品类接口
    interface Product
    {
      public function getProperties();
    }
    //文本产品
    class TextProduct implements Product
    {
      private $text;
      public function getProperties()
      {
        $this->text = "此处为文本";
        return $this->text;
      }
    }
    //图像产品
    class ImageProduct implements Product
    {
      private $image;
      public function getProperties()
      {
        $this->image = "此处为图像";
        return $this->image;
      }
    }
    //客户类
    class Client
    {
      private $factory;
      private $textProduct;
      private $imageProduct;
      public function __construct()
      {
        $factory = new ConcreteFactory();
        $textProduct = new TextProduct();
        $imageProduct = new ImageProduct();
        echo $factory->startFactory($textProduct) . 'br />';
        echo $factory->startFactory($imageProduct) . 'br />';
      }
    }
    $client = new Client();
    /*运行结果:
    此处为文本
    此处为图像
    */
    ?>
    
    

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • PHP 工厂模式使用方法
    • php设计模式之简单工厂模式详解
    • php设计模式 Factory(工厂模式)
    • php基础设计模式大全(注册树模式、工厂模式、单列模式)
    • PHP中“简单工厂模式”实例代码讲解
    • PHP设计模式之工厂模式与单例模式
    • PHP实现设计模式中的抽象工厂模式详解
    • PHP高级对象构建 工厂模式的使用
    • 基于php设计模式中工厂模式详细介绍
    • php设计模式之工厂方法模式分析【星际争霸游戏案例】
    上一篇:原生php实现excel文件读写的方法分析
    下一篇:PHP设计模式之单例模式原理与实现方法分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    PHP设计模式之工厂方法设计模式实例分析 PHP,设计模式,之,工厂,方法,