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

UML中的四种核心关系解析

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

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

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

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

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

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

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

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

箭头符号:虚线加同箭头

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

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

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

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

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


推荐阅读
  • Java 架构:深入理解 JDK 动态代理机制
    代理模式是 Java 中常用的设计模式之一,其核心在于代理类与委托类共享相同的接口。代理类主要用于为委托类提供预处理、过滤、转发及后处理等功能,以增强或改变原有功能的行为。 ... [详细]
  • 本文整理了一系列Java面试问题,涵盖Java开发环境的分类、Java语言的核心特性、Linux环境下Java SE的安装步骤、常用的Java开发工具介绍,以及类与对象的基本概念等。 ... [详细]
  • 本文详细探讨了成为一名合格的初级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 ... [详细]
  • 本文介绍了多种Eclipse插件,包括XML Schema Infoset Model (XSD)、Graphical Editing Framework (GEF)、Eclipse Modeling Framework (EMF)等,涵盖了从Web开发到图形界面编辑的多个方面。 ... [详细]
  • 行为设计模式:命令模式详解
    命令模式是一种行为设计模式,它通过将请求封装为对象,使得可以使用不同的请求来参数化客户端,支持请求的排队、日志记录以及提供命令的撤销和恢复功能。 ... [详细]
  • 本文由公众号【数智物语】(ID: decision_engine)发布,关注获取更多干货。文章探讨了从数据收集到清洗、建模及可视化的全过程,介绍了41款实用工具,旨在帮助数据科学家和分析师提升工作效率。 ... [详细]
  • 本文是对《敏捷软件开发:原则、模式与实践》一书的深度解析,书中不仅探讨了敏捷方法的核心理念及其应用,还详细介绍了面向对象设计的原则、设计模式的应用技巧及UML的有效使用。 ... [详细]
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社区 版权所有