设计模式之工厂方法模式

Posted yinbiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式之工厂方法模式相关的知识,希望对你有一定的参考价值。

工厂方法模式继承了简单工厂模式的优点,还弥补了简单工厂模式的缺陷

关于简单工厂模式请戳这里!

工厂方法模式的定义:定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化,工厂方法模式让一个类的实例化延迟到其子类

简而言之就是工厂方法模式有多个子工厂,每个子工厂负责一个产品的生产,这些子工厂都有一个父类:抽象工厂

工厂方法模式包括四个角色:

1)抽象产品

2)具体产品

3)抽象工厂

4)具体工厂

不同的具体工厂可以创建不同的具体产品,当然,在实际使用时,具体工厂类在实现工厂方法时除了创建具体产品对象之外,还可以负责产品对象的初始化工作以及一些资源和环境配置工作,例如连接数据库,创建文件等

可以通过配置文件来储存具体工厂类的类名,再通过反射机制创建具体的工厂对象,这样在更新的具体工厂时无需修改源码,系统扩展更加方便

实例如下:

实例说明:模拟建设一个日志记录器,包括数据库日志记录器,文件日志记录器







以上是关于设计模式之工厂方法模式的主要内容,如果未能解决你的问题,请参考以下文章

设计模式之工厂模式详解和应用

设计模式之工厂方法模式

设计模式之工厂方法模式

设计模式之工厂方法模式

设计模式之工厂方法模式

PHP设计模式—工厂模式之工厂方法模式