抽象工厂模式

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

才开始学设计模式


一、抽象工厂模式

产品族:有一个工厂产生的不同类型接口
产品等级结构:有相同父类或者亲代的接口

二、解决先有鸡还是先有蛋的问题

不管是做一系列空调软件还是一个牌子的不同产品,感觉都用不上他。只有在做一个电器市场之类的软件可能用到他。一开始想的是制造业复用,现在看来更可能是卖场需要。

三、和建造者的对比

明显建造者是一种build()方法的解释,还解释了构造过程和表示的分离,即不同构造顺序不影响表示

这个是生成器的概念

java 复制代码
new Computer("Intel",16,512,"NVIDIA","Windows11");
-> new Computer.Builder().cpu("Intel").ram(16).storage(512).gpu("NVIDIA").os("Windows11").build()

比较好的解释了,JDBC到新一代框架的过程

感觉这样的好处是更容易new到新的类


以上是没有指挥者的常用模式。建造者还是Builder,产品负责set值,指挥者调整构造顺序,builder是建造者的抽象接口,client调用实际建造者。

没有太大感觉,这个应该更多用于框架,有一点像装饰器。


总结

相关推荐
伯恩bourne6 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Bean
java·spring boot·后端
silvamux_6 小时前
curl 测试 OpenAI 兼容 API 的完整流程
java·人工智能·缓存·ai·oneapi
省钱兄--zs6 小时前
深圳24小时自助健身房软硬件解决方案实战指南与开发流程详解
java·数据仓库·spring boot·小程序·架构
顽疲7 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
Wang's Blog7 小时前
Java 项目实战: 交友项目 - 安装开发工具与环境准备
java·开发语言·交友
用户21296835261687 小时前
开源了一个 Java 多智能体 LLM 框架 Baton:一个依赖,把 Agent 循环、工具调用、记忆、编排全配齐
java·llm
helmsail7 小时前
05 管理活动与选品
java
天远数科7 小时前
Java数据工程:利用天远人车核验加强版优化智慧高速ETC发行合规体验
java·人工智能
.Bryce.7 小时前
在智能体中使用A2A工具:让大模型自己决定“该找谁帮忙“
android·java·服务器·redis·后端·agent·a2a
xiaoqiMikko7 小时前
fastjson 1.2.84 的补丁关掉了一个缓存:addAccept 包前缀白名单下,反序列化慢了 13~28 倍
java·后端·性能优化