类图的6大关系详解

类图

以下类图使用 PlantUML 绘制,更多语法及使用请参考:http://plantuml.com/ 。

泛化关系 (Generalization)

用来描述继承关系,在 Java 中使用 extends 关键字。


 
 
  1. @startuml
  2. title Generalization
  3. class Vihical
  4. class Car
  5. class Trunck
  6. Vihical < |-- Car
  7. Vihical <|-- Trunck
  8. @enduml

实现关系 (Realization)

用来实现一个接口,在 Java 中使用 implements 关键字。


 
 
  1. @startuml
  2. title Realization
  3. interface MoveBehavior
  4. class Fly
  5. class Run
  6. MoveBehavior <|.. Fly
  7. MoveBehavior <|.. Run
  8. @enduml

聚合关系 (Aggregation)

表示整体由部分组成,但是整体和部分不是强依赖的,整体不存在了部分还是会存在。


 
 
  1. @startuml
  2. title Aggregation
  3. class Computer
  4. class Keyboard
  5. class Mouse
  6. class Screen
  7. Computer o-- Keyboard
  8. Computer o-- Mouse
  9. Computer o-- Screen
  10. @enduml

组合关系 (Composition)

和聚合不同,组合中整体和部分是强依赖的,整体不存在了部分也不存在了。比如公司和部门,公司没了部门就不存在了。但是公司和员工就属于聚合关系了,因为公司没了员工还在。


 
 
  1. @startuml
  2. title Composition
  3. class Company
  4. class DepartmentA
  5. class DepartmentB
  6. Company *-- DepartmentA
  7. Company *-- DepartmentB
  8. @enduml

关联关系 (Association)

表示不同类对象之间有关联,这是一种静态关系,与运行过程的状态无关,在最开始就可以确定。因此也可以用 1 对 1、多对 1、多对多这种关联关系来表示。比如学生和学校就是一种关联关系,一个学校可以有很多学生,但是一个学生只属于一个学校,因此这是一种多对一的关系,在运行开始之前就可以确定。

@startuml

title Association

class School
class Student

School "1" - "n" Student

@enduml

依赖关系 (Dependency)

和关联关系不同的是,依赖关系是在运行过程中起作用的。A 类和 B 类是依赖关系主要有三种形式:

  • A 类是 B 类方法的局部变量;
  • A 类是 B 类方法当中的一个参数;
  • A 类向 B 类发送消息,从而影响 B 类发生变化。


 
 
  1. @startuml
  2. title Dependency
  3. class Vihicle {
  4. move(MoveBehavior)
  5. }
  6. interface MoveBehavior {
  7. move()
  8. }
  9. note "MoveBehavior.move()" as N
  10. Vihicle ..> MoveBehavior
  11. Vihicle .. N
  12. @enduml

来源:https://blog.csdn.net/qq_20499001/article/details/91378463

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值