抽象工厂模式:选择产品簇的实现

简介: 抽象工厂模式的本质是选择产品簇的实现

场景分析
(1)组装电脑中的场景问题
就是CPU对象与主板对象存在对应关系,需要相互匹配。简单工厂和工厂方法并没有解决对象之间关联关系问题,它们所关注的只是单个产品对象的创建。
image.png
(2)访问不同的数据库(抽象工厂模式和DAO)
DAO用于解决访问数据对象的问题(数据源不同、存储方式不同、访问方不同、厂商不同Oracle或MySQL),DAO层需要抽象和封装所有对数据的访问,DAO层承
担和数据仓库交互的职责。
DAO层存储实现方式不固定时,需要DAO支持多种存储实现方式,一般就要用抽象工厂模式来实现DAO。
image.png
定义及本质
定义:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。
本质:选择产品簇的实现。
结构示意图:
image.png

UML类图
image.png

调用时序图
image.png

优缺点
(1)优点
分离接口和实现:客户端通过抽象工厂创建需要的对象,从具体的产品实现中解耦。
切换产品簇方便:选择不同的工厂实现(==产品簇)。
(2)缺点
不易扩展新的产品:新增一类产品就需要修改抽象工厂;
类的层次复杂化

目录
打赏
0
0
0
0
28
分享
相关文章
|
11月前
|
Java面向对象特征(二)----- 继承
Java面向对象特征(二)----- 继承
Java面向对象特征(二)----- 继承
3类需求层次结构关系,企业该如何选择和设置?
企业在云效上到底应该用需求来管,还是任务来管?需求、任务总是傻傻分不清楚。
466 1
3类需求层次结构关系,企业该如何选择和设置?
Java面向对象 特征二(继承性)详解
Java面向对象 特征二(继承性)详解
142 0
【C++综合设计题】多层继承和抽象基类的综合应用
【C++综合设计题】多层继承和抽象基类的综合应用
C++修炼之筑基期第一层——认识类与对象
C++修炼之筑基期第一层——认识类与对象
115 0
【离散数学】集合与关系
1. 集合 2. 序偶 3. 笛卡尔积 4. 关系 5. 复合关系 6. 逆关系 7. 关系的闭包运算 8. 集合的划分与覆盖 9. 等价关系 10. 相容关系 11. 序关系
266 0
一次讲清:UML类图中的六大关系
今天给大家分享UML图以及其中最重要的UML类图的几大关系,几分钟交会大家如何制作出UML类图。在UML的静态机制中类图是一个重点,它不但是设计人员关心的核心,更是实现人员关注的核心。
一次讲清:UML类图中的六大关系
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等