07GoF之工厂模式

GoF(Gang of Four):四人组,《Design Patterns: Elements of Reusable Object-Oriented Software》(《设计模式》)的作者,设计了23种设计模式.但时代发展,还有其它的设计模式,比如:JavaEE的设计模式(DAO模式、MVC模式等)。

● GoF23种设计模式可分为三大类:

○ 创建型(5个):解决对象创建问题。

■ 单例模式

■ 工厂方法模式

■ 抽象工厂模式

■ 建造者模式

■ 原型模式

○ 结构型(7个):一些类或对象组合在一起的经典结构。

■ 代理模式

■ 装饰模式

■ 适配器模式

■ 组合模式

■ 享元模式

■ 外观模式

■ 桥接模式

○ 行为型(11个):解决类或对象之间的交互问题。

■ 策略模式

■ 模板方法模式

■ 责任链模式

■ 观察者模式

■ 迭代子模式

■ 命令模式

■ 备忘录模式

■ 状态模式

■ 访问者模式

■ 中介者模式

■ 解释器模式

● 工厂模式是解决对象创建问题的,所以工厂模式属于创建型设计模式。这里为什么学习工厂模式呢?这是因为Spring框架底层使用了大量的工厂模式。


为什么学工厂模式?

Spring底层就是通过工厂模式+XML+反射机制实现的.


工厂模式的三种形态
● 第一种:简单工厂模式(Simple Factory):不属于23种设计模式之一。简单工厂模式又叫做:静态工厂方法模式。简单工厂模式是工厂方法模式的一种特殊实现。

● 第二种:工厂方法模式(Factory Method):是23种设计模式之一。

● 第三种:抽象工厂模式(Abstract Factory):是23种设计模式之一。


简单工厂模式

简单工厂模式的优点

● 客户端程序不需要关心对象的创建细节,需要哪个对象时,只需要向工厂索要即可,初步实现了责任的分离。客户端只负责"消费",工厂负责"生产"。生产和消费分离。

简单工厂模式的缺点

● 缺点1:工厂类集中了所有产品的创造逻辑,形成一个无所不知的全能类,有人把它叫做上帝类。显然工厂类非常关键,不能出问题,一旦出问题,整个系统瘫痪。

● 缺点2:不符合OCP开闭原则,在进行系统扩展时,需要修改工厂类。

简单工厂模式的角色包括三个:

● 抽象产品 角色

● 具体产品 角色

● 工厂类 角色

相关推荐
devilnumber28 分钟前
java中Redisson ,jedis,Lettuce和Spring Data Redis的四种深度对比和优缺点详解
java·redis·spring
砍材农夫1 小时前
spring-ai 第十一mcp server调用入门(stdio协议)
人工智能·spring·microsoft
码农阿豪1 小时前
一次 AI 调用 15 万 Token 只花了 $0.058?彻底搞懂 Token、缓存读、补全计费机制!(附完整架构图)
人工智能·spring·缓存
awljwlj1 小时前
黑马点评复习—缓存相关【包含可能的问题和基础知识复习】
java·后端·spring·缓存
庞轩px1 小时前
反射与动态代理——Java语言动态性的核心
java·spring·反射·aop·动态代理·类型
一叶飘零_sweeeet2 小时前
Spring AI 核心架构、抽象模型与四大核心组件设计精髓
spring·spring ai
LXMXHJ2 小时前
spring+
spring
Java成神之路-2 小时前
零基础入门:动态代理与 Spring AOP 核心知识点总结
spring·代理模式
算.子2 小时前
【Spring AI 实战】五、RAG 核心原理:为什么需要检索增强生成?
java·人工智能·spring
Java面试题总结3 小时前
Spring AI 核心架构、抽象模型与四大核心组件设计精髓
人工智能·spring·架构