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

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

场景分析
(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)缺点
不易扩展新的产品:新增一类产品就需要修改抽象工厂;
类的层次复杂化

相关文章
|
10月前
想象的重要性(抽象工厂)
想象的重要性(抽象工厂)
32 0
|
5月前
|
设计模式 C++
结构型 享元模式共享工厂
结构型 享元模式共享工厂
21 1
|
5月前
|
设计模式 SQL 数据库连接
设计模式之抽象工厂模式--创建一系列相关对象的艺术(简单工厂、工厂方法、到抽象工厂的进化过程,类图NS图)
设计模式之抽象工厂模式--创建一系列相关对象的艺术(简单工厂、工厂方法、到抽象工厂的进化过程,类图NS图)
|
6月前
|
编译器
简单工厂模式练习:简单工厂模式在农场系统中实现
简单工厂模式练习:简单工厂模式在农场系统中实现。
24 1
|
8月前
|
设计模式
工厂模式的三种姿态?
工厂模式的三种姿态?
40 0
|
10月前
类图中的六大关系结构化
类图中的六大关系结构化
|
10月前
|
设计模式
结构型设计模式分类
结构型设计模式分类
|
10月前
|
设计模式 C# uml
论UML图中的六大关系
论UML图中的六大关系
43 0
|
10月前
|
供应链 算法 前端开发
3类需求层次结构关系,企业该如何选择和设置?
企业在云效上到底应该用需求来管,还是任务来管?需求、任务总是傻傻分不清楚。
3类需求层次结构关系,企业该如何选择和设置?
|
10月前
|
安全
组合模式——统一的公司结构
组合模式——统一的公司结构