3)抽象产品角色:它是具体产品继承的父类或者是实现的接口。
4)具体产品角色:具体工厂角色所创建的对象就是此角色的实例。
其结构:
我们的例子:
代码:
产品类:
<?php /** * 车子系列以及型号 * */ abstract class BWM{ } class BWM523 extends BWM { } class BWM320 extends BWM { } /** * 空调 * */ abstract class aircondition{ } class airconditionBWM320 extends aircondition { } class airconditionBWM52 extends aircondition { }
创建工厂类:
/** * 创建工厂的接口 * */ interface FactoryBMW { function createBMW(); function createAirC(); } /** * * 创建BWM320车 */ class FactoryBWM320 implements FactoryBMW { function createBMW(){ return new BWM320(); } function createAirC(){ //空调 return new airconditionBWM320(); } } /** * * 创建BWM523车 */ class FactoryBWM523 implements FactoryBMW { function createBMW(){ return new BWM523(); } function createAirC(){ return new airconditionBWM523(); } }
客户:
/** * * 客户得到车 */ class Customer { private $BMW; private $airC; function getBMW($type){ $class = new ReflectionClass('FactoryBWM' .$type );//建立 Person这个类的反射类 $instance = $class->newInstanceArgs();//相当于实例化Person 类 $this->BMW = $instance->createBMW(); $this->airC = $instance->createAirC(); } }
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。