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开闭原则,在进行系统扩展时,需要修改工厂类。

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

● 抽象产品 角色

● 具体产品 角色

● 工厂类 角色

相关推荐
码云数智-园园5 小时前
C++20 Modules 模块详解
java·开发语言·spring
咖啡八杯6 小时前
GoF设计模式——享元模式
java·spring·设计模式·享元模式
Flittly6 小时前
【AgentScope Java新手村系列】(10)实战-多Agent天气助手
java·spring boot·spring
李少兄6 小时前
从原理到实战:Spring IoC/DI 核心知识体系与高频面试题全解
java·后端·spring
shushangyun_6 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
ofoxcoding7 小时前
在AI API聚合平台配置DeepSeek V3.2提示词缓存实战:快速接入与成本优化指南
人工智能·spring·缓存·ai
一杯奶茶¥8 小时前
水果销售网站 CRM客户信息管理系统 超市管理系 酒店管理系统 健身房管理系统 在线音乐网站 校园招聘系统
java·vue.js·spring boot·mysql·spring·java项目
摇滚侠10 小时前
SpringMVC 入门到实战 RESTFul 49-55
java·开发语言·后端·spring·intellij-idea·restful
我登哥MVP10 小时前
SpringCloud Alibaba 核心组件解析:服务链路追踪
java·spring boot·后端·spring·spring cloud·java-ee·maven
Ysouy11 小时前
Spring Data Elasticsearch 全流程学习教程
java·spring·elasticsearch