当前位置: 首页 > article >正文

Java UML 类图绘制解析:结构与工具类型详解

文章目录

    • 前言
    • 常用UML绘图工具
      • 1、Visual Paradigm
      • 2. Lucidchart
      • 3. Draw.io (现名diagrams.net)
      • 4. PlantUML(推荐)
      • 5. StarUML
    • 类与类之间的关系
      • UML中的关系是面向对象关系。
      • PlantUML类之间的关系用一下符号定义
    • UML 类图实战
      • 1、类 (Class)
      • 2、接口 (Interface)
      • 3、实现 (Implementation)
      • 4、继承 (Inheritance)
      • 5、关联 (Association)
      • 6、聚合 (Aggregation)
      • 7、组合 (Composition)
      • 8、依赖 (Dependency)
    • Java代码UML综合演示
    • 结语

前言

在Java开发中,UML(统一建模语言)类图是设计和理解系统架构的重要工具。本文将详细介绍Java UML类图中不同结构的表示方法及其对应的绘图工具类型,帮助各位大大更高效地进行系统设计。

常用UML绘图工具

1、Visual Paradigm

特点:功能强大,支持多种UML图,界面友好。
适用场景:适合大型项目和团队协作。

2. Lucidchart

特点:在线工具,易于上手,支持多人协作。
适用场景:适合快速绘制和分享UML图。

3. Draw.io (现名diagrams.net)

特点:免费且开源,支持离线使用,有丰富的模板和符号库。
适用场景:适用于个人和小型团队。

4. PlantUML(推荐)

PlantUML是一个通用性很强的工具,可以快速、直接地创建各种图表。
利用简单直观的语言,用户可以毫不费力地绘制各种类型的图表。 如需详细了解该语言的功能和语法,请参阅《PlantUML 语言参考指南》。
如果您是 PlantUML 的新用户,我们建议您从我们的快速入门页面开始 并快速运行。如果您有任何问题,我们的常见问题页面是一个很有价值的资源。 此外,PlantUML 可以与其他各种工具无缝集成,以增强您的工作流程
特点:基于文本描述生成UML图,可以集成到各种IDE中。
适用场景:适合喜欢编程方式绘制UML图的开发者。

5. StarUML

特点:开源、轻量级,具有良好的扩展性和自定义能力。
适用场景:适合中小型项目的快速原型设计。

类与类之间的关系

UML中的关系是面向对象关系。

在这里插入图片描述

PlantUML类之间的关系用一下符号定义

在这里插入图片描述

UML 类图实战

以下我将使用分别介绍类、接口、实现、继承、关联、聚合、组合、依赖等集中UML主要组成元素,并使用PlantUML演示画出UML实战。

1、类 (Class)

定义:类是面向对象编程的基本单位,包含属性和方法。
表示方式:矩形框,分为三个部分:
顶部:类名
中部:属性(成员变量)
底部:方法(成员方法)
在这里插入图片描述

PlantUML

@startuml
class A {
  +int a
  +String b
  +void foo()
  +void bar()
}
@enduml

2、接口 (Interface)

定义:接口是一组抽象方法的集合。
表示方式:矩形框,顶部用 <> 标记,列出所有方法。
在这里插入图片描述

PlantUML

@startuml
interface Animal {
  +void eat()
  +void sleep()
}
@enduml

3、实现 (Implementation)

定义:一个类实现一个或多个接口。
表示方式:带空心箭头的虚线,从实现类指向接口。
在这里插入图片描述
PlantUML

@startuml
interface Animal {
  +void eat()
  +void sleep()
}
class Dog implements Animal {
  +void eat()
  +void sleep()
}
@enduml

4、继承 (Inheritance)

定义:一个类继承另一个类,获得其属性和方法。
表示方式:带空心箭头的实线,从子类指向父类。

在这里插入图片描述

PlantUML

@startuml
interface Animal {
  +void eat()
  +void sleep()
}
class Dog implements Animal {
  +void eat()
  +void sleep()
}
class smallDog extends Dog {
  +void play()
}
@enduml

5、关联 (Association)

定义:两个类之间的关系,被关联方作为成员变量,如“订单”和“顾客”。
表示方式:一条直线连接两个类,可标注角色名、多重性等信息。
在这里插入图片描述

PlantUML

@startuml
@startuml
class Order{
  +Customer customer
  +void createOrder()
}
class Customer{
  +String name
  +String address
  +String phone
}
Order --> Customer
@enduml

6、聚合 (Aggregation)

定义:一种特殊的关联,表示整体与部分的关系,但部分可以独立存在。被关联方作为成员变量,如”车辆“和”轮子“。
表示方式:带空心菱形的线段,菱形靠近整体一方。
在这里插入图片描述

PlantUML

@startuml
class Car{
  +List<Wheel> wheels
  +void buyCar()
}
class Wheel{
  +String name
}
Car o-- Wheel
@enduml

7、组合 (Composition)

定义:一种特殊的关联,更强的聚合形式,部分不能脱离整体而单独存在。被关联方作为成员变量,如“房子”和“房间”。
表示方式:带实心菱形的线段,菱形靠近整体一方。
在这里插入图片描述

PlantUML

@startuml
class House{
  +List<Room> rooms
  +void myHouse()
}
class Room{
  +String name
  +String size
}
House *-- Room
@enduml

8、依赖 (Dependency)

定义:一个类依赖于另一个类,比如作为参数传递或局部变量使用。
表示方式:带箭头的虚线,箭头指向被依赖的类。
在这里插入图片描述

PlantUML

@startuml
class House{
  +void myHouse(Color color)
}
class Color{
  +String name
}
House ..> Color
@enduml

Java代码UML综合演示

在这里插入图片描述

PlantUML

@startuml
class Customer{
  -String name
  -String address
  -String phone
}
class Goods{
  -String name
  -String price
}
class Order{
  -String name
  -String serial
  -List<Goods> goodsList
}
class MessageType{
  -String type
}
class MessageUtils{
  +List<MessageType> messageTypes
  +sendMessage(String message)
}
interface CustomerService{
  +Customer getCustomerById(String id)
}
class CustomerServiceImpl implements CustomerService{
  +Customer getCustomerById(String id)
}
interface OrderService{
  +Order createOrder(Goods goods)
}
class OrderServiceImpl implements OrderService{
  +CustomerServiceImpl customerServiceImpl
  +Order createOrder(Goods goods)
}
class MinProgramOrder extends OrderServiceImpl{
  +MessageUtils messageUtils
  +addMinProgramOrderLog()
  +sendMinProgramMessage()
}
Order o-- Goods
CustomerService ..>Customer
CustomerServiceImpl ..>Customer
OrderService ..>Order
OrderService ..>Goods
OrderServiceImpl ..> CustomerServiceImpl
OrderServiceImpl ..>Order
OrderServiceImpl ..>Goods
MinProgramOrder --> MessageUtils
MessageUtils *--> MessageType
@enduml

结语

通过上述介绍,我们了解了Java UML类图中的基本元素及其表示方式。合理使用这些元素可以帮助更好地理解系统的架构和设计,希望这篇文章能够帮助你在实际开发过程中更有效地运用UML类图进行设计和交流。


http://www.kler.cn/a/508443.html

相关文章:

  • LabVIEW串口通信调试与数据接收问题
  • 协程(还需要输入3个字)
  • 头盔识别技术
  • MarsCode青训营打卡Day1(2025年1月14日)|稀土掘金-16.最大矩形面积问题
  • AI编程工具使用技巧——通义灵码
  • Python毕业设计选题:基于python的酒店推荐系统_django+hadoop
  • 淘宝、京东联盟数字ID转加密ID接口
  • CentOS 安装Redis
  • 机器学习之SVD奇异值分解实现图片降维
  • MySQL 数据库 :SQL 语句规约(不得使用外键与级联,一切外键概念必须在应用层解决。)
  • 无人机技术架构剖析!
  • 半导体、芯片、人工智能、智能驾驶汽车的趋势
  • ansible基础
  • 【OpenCV(C++)快速入门】--opencv学习
  • LTX-Video 高效视频生成模型,一键处理图片文字
  • Swift语言的软件开发工具
  • [SUCTF2018]babyre
  • 基于SpringBoot+Vue的药品管理系统【源码+文档+部署讲解】
  • 记一次linux下的c++ arm程序调试
  • c语言中单引号和双引号用法详解
  • cmake foreach 条件判断
  • SpringBoot Starter 通用接口加密组件(防篡改)+ RequestBodyAdvice和ResponseBodyAdvice原理
  • 商用车电子电气零部件电磁兼容条件和试验(8)—辐射抗干扰(ALSE)和便携式发射机抗干扰(HPT)
  • (01)STM32—GPIO
  • Django MySQL数据库配置完全指南
  • pytorch张量复制方法介绍