设计模式-创建型设计模式-02.工厂方法(php)

设计模式类型

创建型设计模式

设计模式名称

工厂方法

模式定义

工厂方法模式(Factory Method)属于类的创建型模式,又被称做多态工厂模式。
相比简单工厂模式,引入了创建产品的工厂的接口,把实际创建产品的动作延迟到子类工厂中。
继承了工厂接口的不同的子类工厂,分别负责生产其相对应的产品。
当再有新的产品引入时,原来的工厂都不需要修改,只需要继承工程接口,创建新的工厂类即可。

UML角色

抽象工厂:定义工厂接口
具体的工厂:实现工厂的具体类
抽象的产品:定义了产品抽象的接口
具体的产品:实现了抽象产品接口的具体具体实现类

代码演示完毕,
工厂方法的核心在于引入新的产品时,无需修改(简单工厂中的核心逻辑),只需针对新的产品增加对应的工厂即可,符合开发封闭原则
在这里插入图片描述

应用场景

1、客户端在使用某个产品时,清楚的知道应该使用哪个具体的工厂服务,实例化该具体的工厂,生产出具体的产品来。
2、只需要一种产品,而客户端不想知道也不需要知道究竟哪个工厂生产的,即最终选择哪个具体工厂的决定权在生产者一方,生产者根据当前系统的情况来实例化一个具体的工厂返回给使用者,而这个决策的过程对于客户端来说是透明的。

优缺点

优点

1、利用工厂方法类区创建具体的产品对象,隐藏了具体产品对象的创建细节,客户端只需关心具体产品对应的具体工厂
2、遵守开闭原则。加入新的产品类时,只需要同时加入工厂类就可以实现扩展,无需修改原来的代码。

缺点

1、随着产品种类的数量增长,工厂类也会随之增加,将不利于系统的维护,增加系统的编译和运行的开销。

git地址:

https://github.com/wonlon/Design-patterns

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值