UML类图及类与类关系

UML类图及类与类关系

本文使用的IDEA中的uml类图使用的是plantUml,安装教程及地址:https://blog.csdn.net/weixin_35836574/article/details/112155103

plantUml类图的绘制教程:https://www.codercto.com/a/43669.html

一、类图-依赖关系(Dependence)


概念

只要是在类中使用到了对方,那么他们之间就存在依赖关系,如果对象不存在,那么编译都会失败。

举例

/**
* 1. 类当中使用到了对方。
* 2. 作为类中的成员属性。
* 3. 作为类中的返回类型。
* 4. 作为类中方法接收的参数类型。
* 5. 方法中有使用到的类型(局部变量)。
*/
@startuml

class PersonServiceBean{
    -personDao:PersonDao;
    +save(person:Person):void;
    +getIDCard(personId:Integer): IDCard;
    +modify():void;
}

note "PersonServiceBean相当于聚合PersonDao,同时也依赖于PersonDao" as m1

PersonServiceBean ..> IDCard
PersonServiceBean ..> PersonDao
PersonServiceBean ..> Person
PersonServiceBean ..> Department

class PersonDao

class IDCard

class Person

class Department
@enduml

在这里插入图片描述

二、泛化关系(Generalization)


概念

泛化关系实际上就是集成关系,他是依赖关系的特例

举例

/**
* 1. 泛化关系其实就是继承关系。
* 2. 如果A类继承了B类,那么我们就说A和B存在泛化关系。
*/
@startuml

class DaoSupport{

    +save(entity:Object):void

    +delete(id:Object):void
}

class PersonServiceBean extends DaoSupport
@enduml

在这里插入图片描述

三、实现关系(Implementation)


概念

实现关系实际上就是A类实现了B接口。也是依赖关系的特例。

举例

@startuml

interface PersonService{
    delete(id:Integer):void;
}

class PersonServiceBean implements PersonService

@enduml

四、关联关系(Association)


概念

关联关系实际上就是类与类之间的联系,他是依赖关系的特例。

举例

/**
* 1. 关联具有导航性;即双向关系和单向关系。
* 2. 关系具有多重性。
*/
@startuml

class Person{
    -idCard:IDCard;
}

note "单向一对一关联" as n1

Person "1"--->"1" IDCard

class IDCard
@enduml

在这里插入图片描述

@startuml

class Person{
    -idCard:IDCard
}

class IDCard{
    -person:Person
}

note "这是双向1对1关联(两个对象都有对方对象属性)" as n1

Person "1   -idCard"---"1   -person" IDCard

@enduml

在这里插入图片描述

五、聚合关系(Aggregation)

概念

聚合关系表示的是整体和部分的关系,整体和部分可以分开,聚合关系是关联关系的特例,所以他具有关联的导航性与多重性。

举例

/**
* 1. 聚合即类与其他类有关联的关系,可以整体存活,也可以部分分开。
*/
@startuml

class Computer{
    -mouse:Mouse
    -monitor:Monitor
}

Computer o-- Mouse
Computer o-- Monitor

@enduml

在这里插入图片描述

六、组合关系(Composition)


概念

也是整体与部分的关系,但是整体与部分不可以分开。

举例

/**
* 1. 类当中关联的类已经new出了一个对象。如果对象为空,那么该类就不能存活。
* 2. 整体与部分不能分开,一旦分开则不能完成功能。
*/
@startuml
class Person{
    -Head head = new Head
    -Leg leg = new Leg
}

Person *-- Head
Person *-- Leg

class Head

class Leg

@enduml

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值