设计模式学习笔记——抽象工厂模式

设计模式(创建型)------ 抽象工厂模式

在工厂模式中,我们为每一个类都设计了一个工厂,以此来获取该类的对象,但缺点就是一旦类多了,工厂就多了,这时候我们可以考虑这些类间是否有关联,举个例子:

  • 小米华为这两个品牌都有自己的手机、路由器等电子产品,如果按照之前的方法,我们需要为这些产品都设计一个工厂,那这样成本太高了,如果按照品牌划分,分为小米工厂和华为工厂,每个工厂都拥有制造手机、路由器的生产线,这样一来我们就只需要两个工厂类。

同时因为这两个工厂有共同点,所以我们可以进行抽象化,设计一个超级工厂,它拥有制造手机、路由器的生产线(方法),这样一来,当我们需要新增一个具有相同产品线的工厂时,只需要继承这个超级工厂即可。

但这种方法也有缺点,当我们的产品线需要新增产品时,超级工厂和每个品牌的工厂都需要进行修改,这也就违背了开闭原则。

相关推荐
●VON19 小时前
小V健身助手开发手记(基于界面设计的深度复盘)
学习·openharmony·开源鸿蒙·von
崇山峻岭之间19 小时前
Matlab学习笔记04
笔记·matlab
q_191328469519 小时前
基于SpringBoot2+Vue2的企业合作与活动管理平台
java·vue.js·经验分享·spring boot·笔记·mysql·计算机毕业设计
其美杰布-富贵-李19 小时前
Conv1d(一维卷积)深度学习学习笔记
笔记·深度学习·学习
想暴富,学技术19 小时前
高效学习&专注力重塑
学习·高效·专注力
白帽子黑客杰哥19 小时前
推荐一些适合零基础学习网络安全的具体在线课程或书籍?
学习·安全·web安全·网络安全·渗透测试
找方案19 小时前
我的 all-in-rag 学习笔记:初识 RAG—— 让 AI 从 “闭卷考试“ 变 “开卷考“
人工智能·笔记·学习·rag·all-in-rag
搞机械的假程序猿19 小时前
普中51单片机学习笔记-红外遥控
笔记·学习·51单片机
hssfscv20 小时前
JAVAweb学习笔记——JS
javascript·笔记·学习
KD1 天前
设计模式——责任链模式实战,优雅处理Kafka消息
后端·设计模式·kafka