UML类图中六大关系理解 以及 PlantUML类图表示

UML中的关系主要分为六种:

  • 关联(association)
  • 聚合(aggregation)
  • 组合(composition)
  • 依赖(dependency)
  • 泛化(generalization)/继承(inheritance)
  • 实现(realization)

根据关系的紧密程度,由小到大顺序是:依赖->关联->聚合->组合

依赖关系

简单理解就是在某个方法里通过传参的方式用到了某个类,例如:

class ImageLoader{
    loadImage(ImageInfo info)
}

class ImageInfo{
}

使用UML类图表示该关系:用实心箭头+虚线表示
在这里插入图片描述
PlantUML中的表示方法:ImageInfo <… ImageLoader :依赖关系

关联关系

简单理解就是类里面作为属性引用了另一个类,例如:

class Window {
-WindowManager mWindowManager
}

class WindowManager{
}

使用UML类图表示该关系:用实心箭头+实线表示
在这里插入图片描述
PlantUML中的表示方法:WindowManager <-- Window:关联关系

聚合关系

表示整体和部分,一个类属性使用列表保存很多个另一个类对象,例如:

class Company{
	List<Department> mDepartments
}
class Department{
}

使用UML类图表示该关系:用空心菱形+实线表示
在这里插入图片描述
PlantUML中的表示方法:Company o-- Department:聚合关系

组合关系

相比聚合更加紧密的关系,生死与共,不能单独存在,例如:

class Bird{//小鸟
	Wing mWing;//翅膀
}
class Wing{//翅膀
}

使用UML类图表示该关系:用实心菱形+实线表示
在这里插入图片描述
PlantUML中的表示方法:Bird *-- Wing:组合关系

泛化/继承关系

用来表示类之间的继承关系,例如:

abstract class Factory{
 	abstract makeProduct()
}
class PhoneFactory extends Factory{
}
class CarFactory extends Factory{
}

使用UML类图表示该关系:用空心箭头+实线表示
在这里插入图片描述
PlantUML中的表示方法:Factory <|-- PhoneFactory:泛化关系

实现关系

用来表示一个类实现某个一个接口,例如:

interface IColorDraw{
    draw()
}
class RedColorDraw{
    draw()
}
class BlueColorDraw{
    draw()
}

使用UML类图表示该关系:用空心箭头+虚线表示
在这里插入图片描述
PlantUML中的表示方法:IColorDraw <|… RedColorDraw:实现关系

完整的PlantUML表示:
在这里插入图片描述

@startuml
class ImageLoader{
    loadImage(ImageInfo)
}

class ImageInfo{
}

ImageInfo <.. ImageLoader :依赖关系

class Window {
-WindowManager mWindowManager
}

class WindowManager

WindowManager <-- Window:关联关系

class Company
class Department
Company o-- Department:聚合关系

class Bird
class Wing
Bird *-- Wing:组合关系

abstract class Factory
class PhoneFactory
class CarFactory
Factory <|-- PhoneFactory:泛化关系
Factory <|-- CarFactory:也就是继承关系

interface IColorDraw{
    draw()
}
class RedColorDraw{
    draw()
}
class BlueColorDraw{
    draw()
}
IColorDraw <|.. RedColorDraw:实现关系
IColorDraw <|.. BlueColorDraw:实现某个接口
@enduml
  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值