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

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

场景分析
(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月前
|
JSON 数据库 数据格式
|
数据可视化 uml
UML类图的六大关系,最佳学习理解方式
UML类图的六大关系,最佳学习理解方式
399 0
UML类图的六大关系,最佳学习理解方式
|
2月前
|
JSON NoSQL 关系型数据库
DDIA文档型和关系型 工厂模式总结
【6月更文挑战第9天】文档型数据库在全量访问时效率高,但部分字段访问仍需加载全文档。不同数据库通过特定方式优化,如Spanner的嵌入式表,HBase和Cassandra的列族,图数据库的点边集中。关系型与文档型融合,如MySQL、PostgreSQL的JSON支持和RethinkDB的relational-link Joins。复杂对象创建可采用工厂模式,封装变化、复用代码、隔离和控制复杂度。简单场景下直接用`new`关键字即可。
17 0
|
9月前
|
编译器
简单工厂模式练习:简单工厂模式在农场系统中实现
简单工厂模式练习:简单工厂模式在农场系统中实现。
38 1
|
3月前
|
设计模式 SQL 数据库连接
设计模式之抽象工厂模式--创建一系列相关对象的艺术(简单工厂、工厂方法、到抽象工厂的进化过程,类图NS图)
设计模式之抽象工厂模式--创建一系列相关对象的艺术(简单工厂、工厂方法、到抽象工厂的进化过程,类图NS图)
|
10月前
|
设计模式 Java
Java设计模式七大原则-合成聚合复用原则
Java设计模式七大原则-合成聚合复用原则
72 0
|
设计模式 算法 测试技术
设计模式模式类别篇
最近将设计模式中的所有代码都敲了一遍,其中在模式大比拼的时候出现了模式分类现象,下面将我对模式类别的理解以及什么时候使用该类模式和大家分享学习。
|
设计模式
结构型设计模式分类
结构型设计模式分类
|
设计模式
创建型模式分类
创建型模式分类
|
设计模式 C# uml
论UML图中的六大关系
论UML图中的六大关系
56 0