工厂模式
# 工厂模式
- 简单工厂(simple factory)
- 工厂方法(factory method)
- 抽象工厂(abstract factory)
# 简单工厂(simple factory)
场景问题:面向接口编程,客户端 New 一个实例,必须要知道具体实现类。
模版定义:提供一个创建对象实例的功能,而无须关系其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类。
模式本质:重点在选择实现,使客户端实现解耦。
使用场景:
- 如果想要完全封装隔离具体实现,让外部只能通过接口来操作封装体。
- 如果想要把对外创建对象的职责集中管理和控制。
七寸知架构-【创建型模式一】简单工厂(Simple Factory) (opens new window)
# 工厂方法(factory method)
场景问题:简单数据导出功能,会有一些约定方式,比如导出成:文本格式、Excel 格式、Xml 格式、Json 格式等。
模版定义:提供一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化延迟到其子类。
模式本质:让父类在不知道具体实现的情况下,完成自身的功能调用,而具体的实现延迟到子类来实现。
使用场景:
- 如果一个类需要创建某个接口的对象,但是又不知道具体的实现。
- 如果一个类本身就希望由它的子类来创建所需的对象的时候。
七寸知架构-【创建型模式二】工厂方法(Factory Method) (opens new window)
# 抽象工厂(abstract factory)
场景问题:选择组装电脑配机,组装配件是有整体性的,里面选择的各个配件之间是有关联的。
模式定义:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。
模式本质:选择产品簇的实现。
使用场景:
- 如果希望一个系统独立于它的产品的创建,组合和表示的时候。
- 如果要强调一系列相关产品的接口,以便联合使用它们的时候。
七寸知架构-【创建型模式三】抽象工厂(Abstract Factory) (opens new window)
上次更新: 8/23/2022
- 02
- 注册OpenAI账号ChatGPT指南03-31
- 03
- Sign in with Apple(苹果授权登陆)12-29