工厂方法模式及php实现
2016-05-26 21:51
337 查看
工厂方法模式:
工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。
工厂方法模式包含如下角色:
Product:抽象产品
ConcreteProduct:具体产品
Factory:抽象工厂
ConcreteFactory:具体工厂
UML图:
适用性:
当一个类不知道它所必须创建的对象的类的时候。
当一个类希望由它的子类来指定它所创建的对象的时候。
当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
工厂方法模式(Factory Method Pattern)又称为工厂模式,也叫虚拟构造器(Virtual Constructor)模式或者多态工厂(Polymorphic Factory)模式,它属于类创建型模式。在工厂方法模式中,工厂父类负责定义创建产品对象的公共接口,而工厂子类则负责生成具体的产品对象,这样做的目的是将产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该实例化哪一个具体产品类。
工厂方法模式包含如下角色:
Product:抽象产品
ConcreteProduct:具体产品
Factory:抽象工厂
ConcreteFactory:具体工厂
UML图:
适用性:
当一个类不知道它所必须创建的对象的类的时候。
当一个类希望由它的子类来指定它所创建的对象的时候。
当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
abstract class Fruit{ } class Apple extends Fruit{ function __construct(){ echo "Apple"; } } class Banana extends Fruit{ function __construct(){ echo "Banana"; } } interface Factory{ createFruit(); } class AppleFactory implements Factory{ function createFruit(){ return new Apple(); } } class BananaFactory implements Factory{ function createFruit(){ return new Banana(); } }
相关文章推荐
- 简单工厂模式及php实现
- php之上传类
- 字节流的简单读写 FileOutputStream,FileInputStream
- PHP 算术运算符
- php 99乘法表实现思路
- PHP - json_encode中文乱码
- PHP - json_encode中文乱码
- php......留言板
- php第一个解决的问题
- PHP - 如何解析HTML文件
- PHP - 如何解析HTML文件
- PHP - 如何解决中文乱码
- PHP - 如何解决中文乱码
- PHP - 简单获取页面内容
- 部署NTP服务器进行时间同步
- 解决rtrim产生乱码的问题
- 利用php执行sql文件
- PHP函数之十进制、二进制、八进制和十六进制转换函数
- laravel 邮箱改密功能
- PHP命名空间(Namespace)的使用详解