UML-组合

简介: UML-组合

组合优于聚合

聚合UML模糊,其不精确的暗示了整体-部分的关系(和许多普通关联一样)。
可以参考Rumbaugh(UML的创建者之一)的话:

并给赋予太多的,但是每个人(基于不同理由)都认为这是必要的。[RJB04]

因此,不要在UML中费心使用聚合,相反,在适当的时候要使用组合

组合,是一种很强的整体-部分聚合关系

  1. 某一时刻,部分的实例只属于一个组成实例
  2. 部分(Fingers)必须总是属于组成(Hand)(不存在随意游离的部分Finger)
  3. 组成要负责创建和删除部分。

如果组成被销毁,其部分也必须被销毁,或者依附于其它组成,即不允许游离的部分存在!

在UML中,带有实心箭头的关联来表示组合,箭头指向组成类。

1.png

组合的典型代码如下:

public class Hand
{  
    Finger f = new Finger();  
    .......  
}

作者:glowd
原文:https://blog.csdn.net/zengqiang1/article/details/52744334
版权声明:本文为博主原创文章,转载请附上博文链接!

相关文章
|
4月前
|
存储 监控 固态存储
阿里云服务器配置选择参考:cpu与内存、带宽和云盘种类及容量选择注意事项参考
阿里云服务器配置选择参考:选择合适的阿里云服务器配置与云盘容量,用户需先明确业务需求,包括网站类型、访问量、应用类型、性能需求及数据安全性等。根据需求选CPU核心数、内存及带宽,如高并发场景需多核CPU与大内存。云盘容量上,系统盘建议20G-40G,数据盘依数据量选50G-100G或更大,并区分系统盘与数据盘用途。
|
3月前
|
人工智能 自然语言处理 前端开发
从需求到上线:AI生成网站的底层原理讲解
本文揭秘AI生成网站的底层逻辑:从需求语义解析、系统结构化建模,到前后端代码自动生成与一键部署,揭示其如何将一句话转化为可运行系统。核心在于提升抽象层级——从写代码转向表达需求。
|
人工智能 小程序 API
【一步步开发AI运动APP】九、自定义姿态动作识别检测——之关键点追踪
本文介绍了【一步步开发AI运动APP】系列中的关键点追踪技术。此前分享的系列博文助力开发者打造了多种AI健身场景的小程序,而新系列将聚焦性能更优的AI运动APP开发。文章重点讲解了“关键点位变化追踪”能力,适用于动态运动(如跳跃)分析,弥补了静态姿态检测的不足。通过`pose-calc`插件,开发者可设置关键点(如鼻子)、追踪方向(X或Y轴)及变化幅度。示例代码展示了如何在`uni-app`框架中使用`createPointTracker`实现关键点追踪,并结合人体识别结果完成动态分析。具体实现可参考文档与Demo示例。
|
5月前
|
存储 分布式计算 安全
阿里云企业级云服务器:c9i、g9i、r9i实例的性能、适用场景与选型参考
阿里云第9代云服务器c9i、g9i、r9i实例,搭载全新CIPU架构与英特尔®至强®6处理器,实现算力与效率双重飞跃。计算型c9i适配机器学习推理、视频编码等CPU密集场景;通用型g9i平衡CPU与内存,满足企业应用、中小数据库需求;内存型r9i以1:8至1:20高配比,支撑Hadoop/Spark集群等内存密集任务。
|
6月前
|
SQL 人工智能 自然语言处理
有了 Chat,BI 会消失么?
言必称 AI 的 2025 年即将过去,这一年里大数据领域的“顶流”毫无疑问是 ChatBI/Data Agent。岁末肯定要展望未来,于是,带着好奇,我们问了大模型几个问题:
|
8月前
|
JSON 自然语言处理 安全
《服务治理》RPC框架序列化协议深度解析
序列化是将对象转换为字节流的过程,反序列化则是将字节流恢复为对象的过程。在RPC调用中,序列化协议的性能直接影响整个系统的吞吐量和延迟。
|
11月前
|
机器学习/深度学习 人工智能 计算机视觉
智慧城管:违章行为智能识别系统功能解析
AI视频智能分析系统运用机器学习、图像识别等技术,自动识别占道经营、违停乱放等常见城市管理违规行为,实现智能抓拍、实时预警与高效取证。系统支持案件自动派发、处理审核及统计分析,并可联动视频复核,提升城管执法的及时性与精细化管理水平,助力智慧城市建设。
598 0
|
网络安全
SSL证书为什么要收费?
SSL证书为何要收费?本文解析了五大原因:1) 认证与验证的成本;2) 技术支持和保障的必要性;3) 品牌信誉及责任的维护;4) 不同类型证书的功能差异;5) 商业运作的需求。收费确保了证书的安全性和可靠性。
Vue3选择器(Select)
该文章介绍了一个基于 Vue2 的选择器组件 `Select`,具备丰富的自定义属性,如选项数据、占位符文本、是否禁用、是否支持清除和搜索等。支持自定义过滤函数,并可调整下拉面板的高度、宽度及显示项数。组件内部集成了 `Empty` 和 `Scrollbar` 组件以增强功能性和用户体验。示例代码展示了如何创建和使用该选择器,包括基本使用、禁用选项、支持清除与搜索等功能。
621 1
Vue3选择器(Select)
|
存储 运维 NoSQL
分布式读写锁的奥义:上古世代 ZooKeeper 的进击
本文作者将介绍女娲对社区 ZooKeeper 在分布式读写锁实践细节上的思考,希望帮助大家理解分布式读写锁背后的原理。
438 11