工厂设计模式

本文详细介绍了工厂模式的三种类型:简单工厂、工厂方法和抽象工厂。简单工厂模式适用于对象较少的场景,但易导致工厂类职责过重。工厂方法遵循开闭原则,易于扩展,但可能导致类的数量增多。抽象工厂模式则关注一系列相关产品的创建,但扩展新的产品较为困难。通过对三种模式的理解,有助于更好地应用设计模式进行系统设计。
摘要由CSDN通过智能技术生成

工厂模式

客户端不直接接触某个业务类的实现或者实现方法,而是通过工厂类来调度这些业务类的实现或者方法,客户端直接和工厂类接触,调用所需的业务实现

简单工厂
是什么

简单工厂模式(Simple Factory Pattern)是指由一个工厂对象 决定创建出哪一种产品类的实例。

属于创建型模式,但它不属于GOF,23种设计模式。

关键词

接口,违背开闭原则,业务不能复杂

适用场景

工厂类负责创建的对象较少

客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心。

优缺点

只需要传入一个正确的参数,就可以获取所需对象,不需知道创建细节。

工厂类的职责过重,增加新的产品需要修改工厂类的判断逻辑,违背开闭原则, 不易于扩展过于复杂的产品结构

自己理解

通过if else 或者switch 的方式实现某些业务实现的调度,适用业务类较少的场景,如果业务类过多,工厂类会变得冗余复杂,违背开闭原则,单一职责原则

工厂方法
是什么

工厂方法模式(Fatory Method Pattern)是指定义一个创建对 象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方 法让类的实例化推迟到子类中进行。

属于创建型设计模式

关键词

遵循开闭原则,单一职责 ,易于扩展

适用场景

创建对象需要大量重复的代码

优缺点

用户只需关心所需产品对应的工厂,无需关心创建的细节。加入新产品符合开闭原则,提高了系统的可扩展性

类的个数容易过多,增加了代码结构的复杂度。增加了系统的抽象性和理解难度

自己理解

某些业务类,都有其对应的接口,每个业务类都有其对应的工厂类,而这些工厂类都有其对应的接口

每个具体工厂类只能创建一个具体产品类的实例

抽象工厂方法
是什么

抽象工厂模式(Abastract Factory Pattern)是指提供一个创建 一系列相关或相互依赖对象的接口,无须指定他们具体的类。

属于创建型设计模式。

关键词

扩展困难

适用场景

客户端(应用层)不依赖于产品类实例如何被创建,实现等细节。

强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量重复的代码

提供一个产品类的库,所有的产品以同样的接口出现,从而使客户端不依赖于具体实现

优缺点

具体产品在应用层代码隔离,无须关心创建细节将一个系列的产品族统一到一起创建。

规定了所有可能被创建的产品集合,产品族中扩展新的产品困难, 需要修改抽象工厂的接口。 增加了系统的抽象性和理解难度。

自己理解

可以创建多个抽象工厂类

每个具体工厂类可以创建多个具体产品类的实例。

工厂方法与抽象工厂方法

工厂方法注重一个工厂方法实现一种产品

抽象工厂方法注重某个品牌下的多个产品实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值