`

UML类图几种关系的总结(转载http://blog.csdn.net/tianhai110/article/details/6339565)

    博客分类:
  • UML
阅读更多

在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)

         1. 泛化(Generalization

        【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

        【箭头指向】:带三角箭头的实线,箭头指向父类

UML类图几种关系的总结 

        2. 实现(Realization

        【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.

        【箭头指向】:带三角箭头的虚线,箭头指向接口

UML类图几种关系的总结 

        3. 关联(Association)

        【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

        【代码体现】:成员变量

        【箭头及指向】:带普通箭头的实心线,指向被拥有者

UML类图几种关系的总结 

        上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。 

        下图为自身关联: 

UML类图几种关系的总结

        4. 聚合(Aggregation

        【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。

        聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

        【代码体现】:成员变量

        【箭头及指向】:带空心菱形的实心线,菱形指向整体

UML类图几种关系的总结 

        5. 组合(Composition)

        【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。

       组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

【代码体现】:成员变量

【箭头及指向】:带实心菱形的实线,菱形指向整体

UML类图几种关系的总结

        6. 依赖(Dependency)

        【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.

        【代码表现】:局部变量、方法的参数或者对静态方法的调用

        【箭头及指向】:带箭头的虚线,指向被使用者

UML类图几种关系的总结 

        各种关系的强弱顺序:

        泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 

        下面这张UML图,比较形象地展示了各种类图关系:

UML类图几种关系的总结

转自:http://blog.csdn.net/tianhai110/article/details/6339565

分享到:
评论

相关推荐

    机器学习技术专栏数据集

    详情可阅读专栏,地址https://blog.csdn.net/tianhai12/category_12363170.html 包含1960年至2010年年份以及全球温度和二氧化碳排放量的数据, 大样本犯罪信息, 400名用户的年龄以及估计工资对是否购买该产品样本...

    TianHai-wxchat:天海外卖餐饮小程序

    总结,“TianHai-wxchat: 天海外卖餐饮小程序”展示了JavaScript在构建移动互联网餐饮服务中的强大能力。通过理解其背后的技术原理和实现方式,我们可以借鉴并应用于其他类似的项目,提升服务质量和用户满意度。同时...

    bytetrack的跟踪效果

    dancetrack0004的gt

    2023年全球房地产行业并购趋势:政策调整与市场需求变化下的投资机遇

    本文由普华永道发布,详细分析了2023年全球房地产行业的并购趋势。在全球宏观经济环境变化和货币政策调整背景下,房地产并购活动有所放缓,但仍有大量资金等待入场。文中探讨了办公、工业、住宅、零售和酒店五大板块的具体情况及其面临的挑战与机遇。办公资产受利率上调影响较大,但优质资产需求仍然旺盛;工业地产在电商和供应链调整驱动下持续增长;住宅市场因利率上升导致租赁需求增加;零售业则受益于消费者回归实体店;酒店业则因旅游需求回暖而保持高位并购活动。此外,文章还提到不同区域市场的特点,如美洲、欧洲、中东和亚太地区的具体动态。

    计算机二级题库(已经分类).pdf

    计算机二级题库(已经分类).pdf

    intel pcm官方资源

    intel pcm

    汽车入门必读,深刻了解底层逻辑

    汽车入门必读,深刻了解底层逻辑

    计算机二级模拟试题.pdf

    计算机二级模拟试题.pdf

    计算机发展和特点.pdf

    计算机发展和特点.pdf

    基于java的图书馆管理系统毕业设计含源文件.doc

    基于java的图书馆管理系统毕业设计含源文件.doc

    计算机汇编原理.pdf

    计算机汇编原理.pdf

    基于Linux平台的机器人控制系统与路径识别设计方案

    内容概要:本文详细介绍了基于Linux平台的机器人控制系统和路径识别项目的完整设计方案。

    计算机二级计算机编程题.pdf

    计算机二级计算机编程题.pdf

    基于网络流量的设备识别技术综述与发展前景

    内容概要:本文详细介绍了基于网络流量的设备识别技术,涵盖了其发展历史、TCP/IP协议的基础知识以及当前的研究进展。文章首先回顾了早期设备识别的需求和方法,指出随着物联网设备的多样化和复杂化,传统的设备识别方法已难以满足现代需求。接着探讨了高性能扫描工具的作用,强调了TCP/IP各层协议在网络流量分析中的重要性。文中还深入讨论了两种主要的设备识别方法:基于协议特征和统计特征的分类器学习,以及基于应用层数据的自动化规则生成。最后,文章指出了现有方法的优点和局限性,并展望了未来的研究方向。 适合人群:信息安全研究人员、网络管理员、物联网开发者和技术爱好者。 使用场景及目标:适用于希望深入了解设备识别技术原理及其应用场景的专业人士,旨在帮助他们掌握最新的技术和工具,以应对日益复杂的网络安全挑战。 其他说明:文章引用了两篇权威文献,提供了详尽的技术细节和案例分析,有助于读者全面理解设备识别领域的最新进展。

    汇编语言 + x86 架构 + 密码本程序开发 + 助力汇编学习

    1. **内容概要**:x86版本汇编密码本程序基于x86汇编编写,支持增删改查。程序经x86架构优化,执行效率高、兼容性好。 2. **适用人群**:适合学习x86汇编的学生、加密技术爱好者、信息安全开发者以及逆向工程从业者。 3. **使用场景及目标**:在数据传输和存储场景下,对敏感数据加密,保障数据安全。学习者能借此深入理解汇编与加密算法,开发者可将其功能集成到项目中。 4. **其他说明**:程序基于x86架构,在其他架构使用可能需适配。使用者需具备一定汇编和加密知识,使用时应遵守法律法规,关注技术动态,适时更新程序 。

    BAT经典面试题解析:涵盖C++、数据结构与算法、操作系统等领域的深度探讨

    内容概要:本文档汇集了 BAT(百度、阿里巴巴、腾讯)的经典面试题目及其详细解答,涵盖了广泛的技术领域。主要内容包括 STL 容器(如 vector、Map、Set)的实现原理,洗牌算法的设计,竞赛排序问题,中位数查找算法,智能指针的实现与循环引用处理,单例模式的线程安全实现,C++ 结构体大小计算,引用与指针的区别,const 和 define 的对比,强制类型转换的区别,虚函数的工作原理,内存管理和多线程编程技巧,Linux 内存分配机制,以及各种算法设计问题(如短网址服务、网页爬虫、大数据处理等)。这些问题不仅涉及基础知识的理解,还包括实际应用场景中的优化和解决方案。 适合人群:具备一定编程基础和技术背景的研发人员,尤其是准备 BAT 技术面试的候选人。 使用场景及目标:①深入理解 C++ 编程语言特性及其标准模板库的实现细节;②掌握常见的数据结构和算法设计技巧;③熟悉操作系统层面的知识,如内存管理、进程通信等;④提高解决实际工程问题的能力,特别是在大规模数据处理方面。 其他说明:文档中的题目难度较大,旨在考察应聘者的综合能力,包括但不限于理论知识的应用、代码实现的质量、解决问题

    基于Carsim与Simulink的ACC自适应巡航控制系统联合仿真及优化

    内容概要:本文详细介绍了如何利用Carsim进行车辆动力学建模并结合Simulink实现ACC(自适应巡航控制)系统的联合仿真。文中涵盖了从环境配置、模型搭建、控制算法设计到最后的数据同步等多个方面。尤其强调了在配置过程中容易出现的问题及其解决方案,如单位制转换、采样时间同步以及PID控制器参数调优等。此外,作者分享了一些实用的经验技巧,如通过状态机实现跟车模式切换、采用抗饱和PID结构提高控制稳定性等。 适用人群:从事汽车电子控制系统开发的技术人员,尤其是对ACC系统感兴趣的工程师。 使用场景及目标:帮助开发者掌握Carsim与Simulink联合仿真的全流程,确保能够成功搭建并优化ACC控制系统,最终达到稳定可靠的跟车效果。 其他说明:文中提供了大量MATLAB/Simulink代码片段作为实例指导,有助于读者更好地理解和应用相关知识点。同时,针对可能出现的各种问题给出了详细的排查步骤和技术建议。

    计算机二级VB考试_试题(真题)及详细答案.pdf

    计算机二级VB考试_试题(真题)及详细答案.pdf

    计算机仿真作业3.pdf

    计算机仿真作业3.pdf

    华为NAC技术白皮书:网络接入控制解决方案及其应用场景

    内容概要:本文档详细介绍了华为的NAC(网络接入控制)技术,涵盖802.1X认证、MAC认证和Portal认证等多种认证方式。NAC作为一种‘端到端’的安全架构,旨在保障网络安全接入,防止非法终端接入和合法终端越权访问。文档还探讨了各种认证方式的具体实现细节,包括认证流程、配置命令和故障处理方法。此外,文档提供了具体的组网应用实例,帮助用户理解和部署NAC解决方案。 适合人群:网络管理员、信息安全专家、IT运维人员和技术支持团队。 使用场景及目标:适用于企业内部网络的安全管理和控制,特别是需要对用户终端进行严格认证和授权的场景。通过NAC技术,可以提高网络安全性,防止未经授权的访问,保护核心资源。 其他说明:本文档不仅涵盖了理论和技术背景,还包括了详细的配置指南和故障排除步骤,有助于用户全面掌握NAC技术的实际应用。

Global site tag (gtag.js) - Google Analytics