微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐