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

UML类图及类与类关系

二、泛化关系(Generalization)


概念

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

举例

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

class DaoSupport{

    +save(entity:Object):void

    +delete(id:Object):void
}

class PersonServiceBean extends DaoSupport
@enduml

UML类图及类与类关系

三、实现关系(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

UML类图及类与类关系

@startuml

class Person{
    -idCard:IDCard
}

class IDCard{
    -person:Person
}

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

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

@enduml

UML类图及类与类关系

五、聚合关系(Aggregation)

概念

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

举例

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

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

Computer o-- Mouse
Computer o-- Monitor

@enduml

UML类图及类与类关系

六、组合关系(Composition)


概念

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

举例

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

Person *-- Head
Person *-- Leg

class Head

class Leg

@enduml

UML类图及类与类关系

上一篇:oracle 核对校验位身份证验证函数


下一篇:20211014python自动化 大班整合课程《我的身份证》