软构学习笔记-工厂模式
三个工厂模式方法
Introduction
工厂模式属于设计模式中创造型模式的一种。
它提供了一种创建对象的方式,将创建对象的过程作了优秀的封装。
使得创建对象的创建逻辑不会暴露给客户端,而是通过接口来进行对象的创建。
简单工厂模式
定义:
定义一个工厂类,根据传入的参数不同返回不同类型的实例,被创建的实例具有共同的父类或者接口。
适用场景:
由于简单工厂模式只有一个工厂类,因此工厂中创建的对象不能太多,否则会造成业务逻辑的复杂。
特点:
- 一个工厂
- 对具有共同父类或接口,但实现不尽相同对象进行创建。
- 根据传入的参数指定创建对象的类型。
工厂方法模式
工厂方法模式相当于是对简单工厂的进一步深化。
与简单工厂模式不同的事,在工厂模式方法中,我们为不同的对象提供不同的工厂,而不是使用一个同意的工厂类。即每个对象都有与之对应的工厂。
定义:
定义一个用于创建不同工厂的工厂接口,通过实例化不同的对象工厂,(再通过该对象工厂)创建对应对象。
特点:
- 有一个创建不同对象工厂的工厂接口
- 各对象工厂实现工厂接口方法来创建指定对象
抽象工厂模式
抽象工厂模式进一步深化了工厂方法,在该模式中,工厂类不仅可以创建一个对象,而且能创建一组对象。
定义:
提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。( 在抽象工厂模式中,每一个具体工厂都提供了多个工厂方法用于产生多种不同类型的对象)
特点:
- 工厂不局限于创建一个产品,而是提供一个产品族中的特定产品。
- 工厂接口衍生不同产品族的工厂类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构