UML类图中常见的关系

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


1. 泛化(Generalization)
        【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。
        【箭头指向】:带三角箭头的实线,箭头指向父类



 2. 实现(Realization)
        【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.
        【箭头指向】:带三角箭头的虚线,箭头指向接口



3. 关联(Association)
        【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。
        【代码体现】:成员变量
        【箭头及指向】:带普通箭头的实心线,指向被拥有者



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





 4. 聚合(Aggregation)
        【聚合关系】:是整体与部分的关系,且部分可以离开整体而单独存在。如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。
        聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。
        【代码体现】:成员变量
        【箭头及指向】:带空心菱形的实心线,菱形指向整体 



5. 组合(Composition)
        【组合关系】:是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。
       组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
【代码体现】:成员变量
【箭头及指向】:带实心菱形的实线,菱形指向整体


6. 依赖(Dependency)
        【依赖关系】:是一种使用的关系,即一个类的实现需要另一个类的协助,所以要尽量不使用双向的互相依赖.
        【代码表现】:局部变量、方法的参数或者对静态方法的调用
        【箭头及指向】:带箭头的虚线,指向被使用者



各种关系的强弱顺序:
        泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖 
        下面这张UML图,比较形象地展示了各种类图关系:




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
UML类图,继承关系是指一个类(子类)可以继承另一个类(父类)的属性和方法。子类继承了父类的所有行为和属性,并且可以新增新的功能或者重写父类的功能。在UML类图,继承关系用带空心三角箭头的实线来表示,箭头指向父类。 除了普通的继承关系,还有一种抽象的继承关系。在Java,抽象的继承关系是指子类继承了父类的抽象方法,但是并不具体实现这些方法,而是由子类来具体实现。这种抽象继承关系UML类图也可以用带空心三角箭头的虚线来表示。 总结来说,在UML类图,继承关系用于表示子类继承父类的行为和属性,可以新增新的功能或者重写父类的功能。同时,还有一种抽象的继承关系,用于表示子类继承父类的抽象方法,但不具体实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span> #### 引用[.reference_title] - *1* *2* *4* [UML类图:类、继承和实现、关联、聚合、组合、依赖](https://blog.csdn.net/dyxcc/article/details/118256272)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [UML类图,继承,实现,聚合,组合](https://blog.csdn.net/hl_java/article/details/126294562)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值