生成器模式:分离整体构建算法和部件构造

简介: 生成器模式的本质在于分离整体构建算法和部件构造

场景分析(如图)
image.png

定义及本质

定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
本质:分离整体构建算法和部件构造。重在解决构造复杂对象的问题。
结构示意图:

image.png
Director:指导者,负责把构建过程独立出来,并指导装配过程,实现整体构建算法,但不负责具体的实现,因而是相对不变的;而是将创建和组合具体部件通过委托交给Builder完成。
Builder:生成器接口,定义各个部件的操作。
ConcreteBuilder:生成器,负责具体的实现,实现各个部件的创建、组装,最终提供可获取组装完成后的产品对象的方法。
Builder模式包括两部分:一部分是部件构造和产品装配,另一部分是整体构建算法。主要强调是整体构建的算法,而灵活扩展和切换部件的具体构造和产品装配的方式。

UML类图
image.png

调用时序图
image.png

优缺点
(1)松散耦合、复用性

    生成器模式使用统一的构建算法实现产品构建和产品表现上分离,将产品构建过程独立出来,使它和具体产品的表现松耦合;Director是统一的、固定不变的,这使得构建算法可以复用。

(2)容易改变产品内部表示

    具体生成器实现部分是可变的,如需改变产品的内部表示,只需要切换Builder的具体实现即可。

(3)生成器模式的重心在于分离整体构建算法(Director)和部件构造(ConcreteBuilder),分步骤构建对象可以说是整体构建算法的一个简单表现,或者说是一个附带物。

相关文章
|
30天前
|
前端开发 算法 JavaScript
无界SaaS模式深度解析:算力算法、链接力、数据确权制度
私域电商的无界SaaS模式涉及后端开发、前端开发、数据库设计、API接口、区块链技术、支付和身份验证系统等多个技术领域。本文通过简化框架和示例代码,指导如何将核心功能转化为技术实现,涵盖用户管理、企业店铺管理、数据流量管理等关键环节。
|
3月前
|
算法 C++
第一周算法设计与分析 E : 构造回文串
这篇文章介绍了解决算法问题"构造回文串"的方法,即判断给定的整数N(视为字符串)是否可以通过在前面添加任意个0(或不添加)来构造一个回文串,并给出了相应的C++代码实现。
|
5月前
|
算法
使用k-近邻算法构建手写识别系统(kNN)
使用k-近邻算法构建手写识别系统(kNN)
42 9
|
5月前
|
算法 前端开发 Java
探讨Java中递归构建树形结构的算法
探讨Java中递归构建树形结构的算法
67 1
|
6月前
|
机器学习/深度学习 运维 算法
[ICDE2024]多正常模式感知的频域异常检测算法MACE
阿里云计算平台大数据基础工程技术团队主导,与浙江大学合作的论文《Learning Multi-Pattern Normalities in the Frequency Domain for Efficient Time Series Anomaly Detection》被ICDE2024收录,该论文解决了云服务环境中不同服务存在不同正常模式,而传统神经网络一个训练好的模型只能较好捕捉一种或少数几种正常模式的问题,该论文提出的方法可以使用一个统一模型对不同服务进行检测,就达到比为每一个服务定制一个模型的SOTA方法更好的效果。
|
5月前
|
机器学习/深度学习 算法 数据采集
构建一个基于机器学习的交易算法
【6月更文挑战第2天】本文探讨了如何构建基于机器学习的交易算法,关键步骤包括数据收集与预处理、特征选择、模型选择与训练、评估与优化,以及回测与实盘交易。挑战涉及数据质量、过拟合与欠拟合、市场变化与模型适应性。通过结合金融知识与机器学习技术,可创建智能交易系统,但需不断更新优化以应对市场动态。
|
5月前
|
机器学习/深度学习 数据采集 算法
基于机器学习的推荐算法构建技术详解
【6月更文挑战第4天】本文详述了构建基于机器学习的推荐算法,特别是协同过滤方法。从用户和物品相似性的角度,解释了用户-用户和物品-物品协同过滤的工作原理。涵盖了数据准备、预处理、特征工程、模型训练、评估优化及结果展示的构建流程。推荐算法在电商、视频和音乐平台广泛应用,未来将受益于大数据和AI技术的进步,提供更智能的推荐服务。
|
5月前
|
算法 C++
算法与数据结构高手养成:朴素的贪心法(中)构造法
算法与数据结构高手养成:朴素的贪心法(中)构造法
33 2
|
5月前
|
存储 算法 NoSQL
数据结构和算法——哈希查找冲突处理方法(开放地址法-线性探测、平方探测、双散列探测、再散列,分离链接法)
数据结构和算法——哈希查找冲突处理方法(开放地址法-线性探测、平方探测、双散列探测、再散列,分离链接法)
133 1
|
4月前
|
算法 搜索推荐
推荐系统,推荐算法01,是首页频道推荐,一个是文章相似结果推荐,用户物品画像构建就是用户喜欢看什么样的文章,打标签,文章画像就是有那些重要的词,用权重和向量表示,推荐架构和业务流
推荐系统,推荐算法01,是首页频道推荐,一个是文章相似结果推荐,用户物品画像构建就是用户喜欢看什么样的文章,打标签,文章画像就是有那些重要的词,用权重和向量表示,推荐架构和业务流