浅谈工厂模式

本文介绍了创建型设计模式中的抽象工厂和工厂方法。抽象工厂模式提供了一组接口,用于创建相关或相互依赖的对象,而无需关注其具体类。工厂方法则定义了一个创建对象的接口,由子类决定实例化哪个类,实现了类的实例化延迟到子类中。这两种模式都提高了系统的灵活性和可配置性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建模式在什么被创建,谁创建它,它是怎么被创建的,以及何时创建这些方面提供了很强的灵活性。通常创建模式允许用结构和功能差别很大的“产品”对象来配置一个系统

01 | 抽象工厂

  • 抽象工厂模式Abstract Factory)主要为提供一个或者说创建一些相关(相互依赖)的对象的接口,而无须知道它们具体的类

  • 抽象工厂模式结构
    在这里插入图片描述

    • AbstractFactory:声明一个创建抽象产品对象的操作接口。
    • ConcreteFactory: 实现创建具体产品对象的操作。
    • AbstractProduct:为一类产品对象声明一个接口。
    • ConcreteProduct:定义一个将被相应的具体工厂创建的产品对象,实现AbstractProduct接口。
    • Client仅使用由AbstractFactory和 AbstractProduct类声明的接口。
  • 适用性

    • 一个系统要独立于它的产品的创建、组合和表示时。
    • 一个系统要由多个产品系列中的一个来配置时。
    • 当要强调一系列相关的产品对象的设计以便进行联合使用时。
    • 当提供一个产品类库,只想显示它们的接口而不是实现时。

02 | 工厂方法

  • 工厂方法Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化顺延到其他的类中。
  • 工厂方法结构
    在这里插入图片描述
    • Product定义工厂方法所创建的对象的接口。
    • ConcreteProduct实现Product接口。
    • Creator声明工厂方法,该方法返回一个 Product类型的对象。Creator也可以定义一个工厂方法的默认实现,它返回一个默认的ConcreteProduct对象,可以调用工厂方法以创建一个Product对象。
    • ConcreteCreator重定义工厂方法以返回一个ConcreteProduct 实例。
  • 适用性
    • 当一个类不知道它所必须创建的对象的类的时候。
    • 当一个类希望由它的子类来指定它所创建的对象的时候。
    • 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。

03 | 未完待续

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ltd Pikashu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值