0
点赞
收藏
分享

微信扫一扫

UML基础(PlantUML描述)

这里使用PlantUML来画UML图,PlantUML的使用方法可以看

架构师画图神器 - PlantUML_虾王之五的技术博客_51CTO博客

实体

UML的的实体类型包括:类、抽象类、接口、对象等

1、类

我们描述一个人的类

@startuml test

  class Person {
    -name: String
    -age: int
    -sex: String
    +getName()
    +setName()
    +getAge()
    +setAge()
    +getSex()
    +setSex()
  }
  
@enduml

UML基础(PlantUML描述)_抽象类

2、抽象类

我们描述一个汽车的抽象类

@startuml test

   abstract class Car {
    
    +drive()
    +stop()
    +refuel()
    +getFuelLevel()
    +getSpeed()
    +setSpeed(speed: int)
    +getMaxSpeed()
    +setMaxSpeed(speed: int)
    +getColor()
    +setColor(color: String)
    +getModel()
    +setModel(model: String)
    +getYear()
    +setYear(year: int)
    +getMake()
    +setMake(make: String)
    +getVin()

  }
  
@enduml

3、接口

我们描述一个鸟的接口

@startuml test

   interface Bird {
    
    + fly()
    + layEggs()

  }
  
@enduml

UML基础(PlantUML描述)_聚合关系_02

4、对象

我们描述一个对象

@startuml test

   object "一个对象" as object1
   object1 : name = "张三"
   object1 : age = 20
   object1 : gender = "男"
   object1 : address = "北京市"
   object1 : phone = "13812345678"
   object1 : email = "zhangsan@example.com"
   object1 : idCard = "110101199001011234"
  
@enduml

UML基础(PlantUML描述)_抽象类_03

实体间的关系

实体间关系有六种,分别是

  • 泛化(Generalization)关系
  • 关联(Association)关系
  • 聚合(Aggregation)关系
  • 组合(Composition)关系
  • 依赖(Dependency)关系
  • 实现(Realization)关系


1、泛化关系(继承)

泛化表示的是is-a的关系,是对象之间耦合度最大的一种关系,子类继承父类的所有细节,并具有可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系

这里我们定义了Man和Woman两个类,都继承于Person

@startuml test

   class Person {
    -name: String
    -age: int
    -sex: String
    +getName()
    +setName()
    +getAge()
    +setAge()
    +getSex()
    +setSex()
  }

  class Man {}

  class Woman {}

  Person <|-- Man
  Person <|-- Woman
  
@enduml

UML基础(PlantUML描述)_关联关系_04

2、关联关系

这里描述了司机(Driver)和汽车(Car)的关联关系,一个司机可以驾驶多辆汽车

@startuml test

    class Car {

    }

   class Driver {
    +car: Car
  }

  Driver "0..1" --> "1" Car
  
@enduml

UML基础(PlantUML描述)_抽象类_05

3、聚合关系

聚合关系是关联关系的一种,表示的是整体和个体之间的关系。

这里描述了汽车、引擎、轮胎之间的关系

@startuml test

    class Car {
        +engine Engine 
        +tire Tire
    }

   class Engine {}

  class Tire {}

  Car "1" o-- "1" Engine
  Car "1" o-- "0..*" Tire
  
@enduml

UML基础(PlantUML描述)_关联关系_06

4、组合(合成)关系

合成关系是关联关系的一种,比聚合关系更强,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期,合成关系不能共享。

这里描述了人、四肢、车的关系,

@startuml test

    class Person {
        +limbs: Limb[] 
        +car Car
    }

   class Limb {}

  class Car {}

  Person "1" o-- "0..*" Car
  Person "1" *-- "4" Limb
  
@enduml

UML基础(PlantUML描述)_抽象类_07

5、依赖关系

依赖也是类与类之间的连接,依赖总是单向的。依赖关系表示一个类依赖于另一个类的定义。

这里描述了男人买房子和汽车。

@startuml test

    class Man {
        +buy(house: House): void
        +buy(car: Car): void
    }

   class House {}

  class Car {}

  Man ..> Car
  Man ..> House
  
@enduml

UML基础(PlantUML描述)_抽象类_08

6、实现关系

实现关系在类图中表示的就是接口和实现类的关系,指的是一个class类实现一个或多个接口的功能,也是非常常用的关系。

这里描述了鸭子实现鸟的接口

@startuml test

    interface Bird {
        +fly()
        
    }

   class Duck {
    +fly()
   }

  Duck ..> Bird
  
@enduml

UML基础(PlantUML描述)_聚合关系_09

一个子类可以实现多个接口,这个可以理解为子类具有了被实现的父类的所有功能,子类可以同时实现不同的父类来具有不同的功能,如人有吃东西这么一种功能,也可以有走路这样的功能,还可以有说话的功能等等,此时的实现关系图如下:

@startuml test

    class Person {
        +walk()
        +eat()
        
    }

   interface Walkable {
    +walk()
   }

   interface Eatable {
    +eat()
   }
   

  Person ..> Walkable
  Person ..> Eatable
  
@enduml

UML基础(PlantUML描述)_关联关系_10

举报

相关推荐

0 条评论