热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

UML中的四种核心关系解析

在学习UML图时,可以将其内部的关系类比为人体的血管系统。每条“血管”所传输的信息和数据流向各不相同,起点和终点也各异。因此,掌握这些关系的辨识方法是理解UML图的关键。这四种核心关系包括关联、聚合、泛化和依赖,它们在建模过程中起着至关重要的作用。通过深入分析这些关系,可以更准确地描述系统结构和行为。

学习了UML图以后发现里面的关系就想人体的血管一样,每一条血管输送的血液到达的地方不一样,从哪里输出也是不同的,所以就要先学会辨别这里面的关系。

       在UML中有6种关系:泛化、实现、依赖、关联、聚合、组合。

泛化:就是继承的一种体现,子类继承父类所具有的所有,这种继承就是泛化可以通过一个等式表示出来:子类=父类的方法和属性+子类自己新增的方法和属性。

箭头符号:空心三角形实线

实现:就是类对接口的实现的关系,举例就是有一个行为是“呼吸”的接口,通过一个人 类实现这个呼吸的动作。

箭头符号:一条虚线+空心箭头。

依赖:一个类的实现需要通过另一个类的协助,通俗点说就是开门需要钥匙,然后我们使用钥匙才能把门打开,我们和钥匙就是一种依赖关系。

箭头符号:虚线加同箭头

关联:表示“拥有“,关联具有长期性、平等性(可双向),在现实生活中就是夫妻关系的一种体现,当然一对多的关联也有,比如说老师和学生等。

箭头符号:双向关联,一条实线或一条实线+两个箭头;单向关联,一条实线+一个箭头。

剩下的两个关系可以归类到关联关系种,因为它们两个体现的是整体与部分的关系,不过它们还是要区分一下的,聚合的关联关系相比较组合的关联关系就弱了,聚合表现的整体与部分的关系是可以独立存在的,如部门与员工之间的关系,部门解散并不影响员工,而员工离职也不影响这个部门的存在。组合就是一种强烈的整体与部分的关系体现了,手机和手机电池就是一种体现,如果手机没有电池它就不能用,而电池不在上手机那它也就没有作用,二者不可单独存在,这就是一种组合关系。

聚合箭头符号:一条实线+空心菱形

组合箭头符号:一条实线+实心菱形


推荐阅读
  • 本文探讨了UML类图在系统建模中的重要性,详细介绍了其组成部分及其在静态设计视图中的应用。通过具体的使用场景和示例,帮助读者更好地理解和掌握类图的构建与解释。 ... [详细]
  • 深入解析Spring启动过程
    本文详细介绍了Spring框架的启动流程,帮助开发者理解其内部机制。通过具体示例和代码片段,解释了Bean定义、工厂类、读取器以及条件评估等关键概念,使读者能够更全面地掌握Spring的初始化过程。 ... [详细]
  • 我有这种ajax$.ajax({type:"POST",url:"bee_sesi_edit.php&# ... [详细]
  • 本文主要介绍了线油书的部分资料及其对相关领域的启示与影响。通过详细的数据分析和案例研究,探讨了线油书在未来的发展潜力。 ... [详细]
  • 解决MySQL错误2002:无法建立数据库连接
    本文详细描述了在Digital Ocean服务器上托管的多个WordPress站点突然出现数据库连接错误的情况,并提供了有效的解决方案。 ... [详细]
  • 本文介绍了如何利用Apache Digester库解决硬编码问题,通过创建自定义配置文件(如Struts配置文件)来动态调整应用程序的行为。文章详细描述了使用Apache Digester将XML文档转换为Java Bean对象的过程,并提供了具体的实现步骤。 ... [详细]
  • 本文详细探讨了成为一名合格的初级Java工程师所需掌握的知识体系,以及从初级到中级乃至高级工程师的成长路径和职业发展前景。 ... [详细]
  • 北航OO单元1总结报告
    本文档详细总结了北航OO课程第一单元的学习成果,涵盖架构设计、程序结构分析、bug调试及个人心得等多个方面。 ... [详细]
  • 本文档详细介绍了Robot Framework的基础知识、安装配置方法及其实用技巧。从环境搭建到编写第一个测试用例,涵盖了一系列实用的操作指南和最佳实践。 ... [详细]
  • 本文探讨了命令模式和责任链模式在软件设计中的应用,详细介绍了这两种模式的基本概念、UML图示、主要组成部分及其优缺点。特别关注了命令模式如何通过命令转发实现调用者与接收者之间的解耦,以及责任链模式如何通过顺序传递请求来调整处理逻辑。 ... [详细]
  • 本文详细探讨了UML用例图中的两种重要关系——包含关系和扩展关系,通过具体示例解析这两种关系的应用场景及其实现方式。 ... [详细]
  • 本文继续探讨Java IO系统中的Reader与InputStream之间的关系,重点分析面向字符的IO流如何通过装饰者模式增强功能,以支持Unicode等国际化的需要。 ... [详细]
  • JobScheduler5.0源码分析
    0.JobScheduler执行代码mJobScheduler(JobScheduler)getSystemService(Context.JOB_SCHEDULER_SERVICE); ... [详细]
  • 在Ubuntu上通过Wine安装Photoshop CS6的详细指南
    针对专业设计师和图像处理人员,寻找能够完全替代Adobe Photoshop的开源软件往往不尽如人意。本文提供了一种解决方案,即通过Wine在Linux系统上安装Photoshop CS6,以实现更稳定的操作体验。 ... [详细]
  • 第三周课堂测试1、使用汇编语言编写指令时,用一些简单的容易记忆的符号来代替二进制指令,比机器语言更为方便,属于高级语言。(B ... [详细]
author-avatar
loloyoyo555
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有