博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式---工厂模式Factory(创建型)
阅读量:7002 次
发布时间:2019-06-27

本文共 1113 字,大约阅读时间需要 3 分钟。

1. 概述

  在编程中,经常需要new一些对象,但是在一些情况下, new操作直接生成对象会带来一些问题。举例来说,许多类型对象的创建需要一系列的步骤,在这种情况下,新对象的建立就是一个“过程”,不仅是一个操作。所以,如何能轻松方便地构造对象实例,而不关心构造对象实例的细节和复杂过程呢?

2. 应用场景

  简化创建对象实例的操作,屏蔽创建对象的具体过程。

3. 示例

(1)简单工厂模式

  建立一个工厂(一个函数或一个类方法)来制造新的对象。

1 
BMW = Factory::createBMW($type); 45 } 46 }

(2)工厂方法模式

1 
createBMW(); 62 case 523: 63 $BWM523 = new FactoryBWM523(); 64 return $BWM320->createBMW(); 65 //.... 66 } 67 68 } 69 } 70 class Customer { 71 private $BMW; 72 function getBMW($type){ 73 $class = new ReflectionClass('FactoryBWM' .$type );//建立 'FactoryBWM'这个类的反射类 74 $instance = $class->newInstanceArgs();//相当于实例化'FactoryBWM' .$type类 75 return $instance->createBMW(); 76 //或者直接 77 /** 78 * $instance = new 'FactoryBWM' .$type(); 79 * return $instance->createBMW(); 80 */ 81 } 82 }

(3)抽象工厂模式

1 
newInstanceArgs();//相当于实例化Person 类 73 $this->BMW = $instance->createBMW(); 74 $this->airC = $instance->createAirC(); 75 } 76 }

 

转载地址:http://enutl.baihongyu.com/

你可能感兴趣的文章