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

UML对象图

UML对象图

一、对象图核心概念

对象图(Object Diagram)描述的是系统在某一时刻对象(实例)的状态快照。它关注的是实际对象之间的实例关系,而不是类与类之间的静态结构。主要特点有:

  1. ​对象(Object)
    对象图显示的是类的对象(类的实例化实体)的具体状态,包括对象名、所属类以及部分属性值。从而可以直观看到系统在运行时各种对象之间的关系。

  2. 瞬时快照
    对象图像是一张“照片”,展示了在某一具体时刻各对象如何交互、彼此关联,适用于分析系统运行中的状态和数据实例。

  3. 关系展示(Link)
    对象之间可能有连接(例如关联、依赖等关系),这些连接反映了各种对象实例之间的协作或数据传递过程。

通俗理解
想象你在开学第一天拍了一张班级合照,对象图就像这张照片,它显示了班级中每个同学(对象)的身份(所属类)、姓名(对象名称)和部分特征(属性值),以及大家站在一起的相互关系(关联)。这和 UML 的类图不同,类图描述的是同学们应具备的通用属性和方法,而对象图则展示了实际那一刻各个同学的样子和关系。


二、示例

我们以电商订单为例,展示一个简单对象图的快照。在此示例中,我们假设系统中已经存在以下实例对象:

  • 一个用户对象(u1 : User,姓名为 Alice)
  • 一个订单对象(o1 : Order,总额 100)
  • 一个支付对象(p1 : Payment,状态为 completed)

下面利用节点标签描述对象名称、所属类和属性值,以展示对象之间的关系:

下单
支付
u1 : User
name = Alice
o1 : Order
total = 100
p1 : Payment
status = Completed

说明

  • 箭头表示对象之间的交互:如用户 u1 (Alice)下单生成订单 o1,订单 o1 调用了支付 p1

三、设计题目

下面给出三个难度层级的设计题目,要求你针对对象图的视角绘制系统在某一时刻的状态快照:

1. Easy 难度:图书馆管理系统对象图

需求描述
设计一个图书馆系统的对象图。假设系统中存在以下实例:

  • 一个读者对象(例如,r1 : Reader,姓名为 Bob)
  • 一本图书对象(例如,b1 : Book,标题为 “UML基础”)
  • 一本借阅记录对象(例如,lr1 : LoanRecord,记录借出日期和到期日期)

要求

  • 读者对象与借阅记录对象之间存在关联(表示该读者借阅了这本书);
  • 借阅记录对象关联图书对象。
  • 用 Mermaid 语法绘制该对象图,并标明对象间的关系。

2. Medium 难度:电商订单流程对象图

需求描述
设计一个网购订单系统的对象图快照。系统当前有:

  • 一个用户对象(例如,u1 : User,姓名为 Carol)
  • 一个购物车对象(例如,cart1 : ShoppingCart),其中包含多个商品;
  • 一个订单对象(例如,o1 : Order,订单总额 250);
  • 一个支付对象(例如,p1 : Payment,支付状态为 pending)

要求

  • 用户对象通过购物车提交订单;
  • 订单对象与支付对象存在关联。
  • 用 Mermaid 语法绘制对象图,展示各对象的属性和相互关联。

3. Hard 难度:实时协作平台对象图

需求描述
设计一个用于支持在线多人编辑平台的对象图,展示系统在某一时刻的内部状态快照。系统包含以下实例:

  • 一个用户对象(例如,u1 : User,姓名为 David),以及多个在线用户对象;
  • 一个文档对象(例如,d1 : Document,版本号 5.2);
  • 一个协作会话对象(例如,s1 : Session,状态为 Active),记录当前协作会话信息;
  • 一个消息对象(例如,m1 : Message,内容为“编辑保存成功”)

要求

  • 用户对象与协作会话对象之间有关联(表示用户正在参与协作);
  • 协作会话对象与文档对象之间有关联;
  • 消息对象与协作会话对象有关联,表示通过该会话发送编辑消息。
  • 使用 Mermaid 语法绘制对象图,注意对象的名称、所属类以及部分关键属性,并清楚标明各对象之间的关系。

三、设计题目参考答案

1. Easy 难度:图书馆管理系统对象图

下面对象图示例,满足图书馆管理系统的需求。

借阅
关联图书
r1 : Reader
name = Bob
lr1 : LoanRecord
borrowDate = 2023-08-15
dueDate = 2023-09-15
b1 : Book
title = UML基础

说明

  • r1 表示读者对象,属性 name = Bob
  • lr1 表示借阅记录对象,包含借出日期和到期日期(此处示例日期为 2023-08-15 和 2023-09-15,可根据需要修改)。
  • b1 表示图书对象,属性 title = UML基础
  • 箭头显示了对象之间的关联关系,表示读者借阅了图书,具体记录在借阅记录中。

2. Medium 难度:电商订单流程对象图

下面展示电商订单流程对象图的快照。

通过购物车提交订单
生成订单
关联支付信息
u1 : User
name = Carol
cart1 : ShoppingCart
items = [item1, item2, ...]
o1 : Order
total = 250
p1 : Payment
status = pending

说明

  • u1 : User 对象表示用户,其姓名为 Carol。
  • cart1 : ShoppingCart 对象表示购物车,其中包含多个商品(这里用 [item1, item2, ...] 作为示例数据)。
  • o1 : Order 对象表示订单,其订单总额为 250。
  • p1 : Payment 对象表示支付,其状态为 pending(待支付)。
  • 箭头显示对象间的关系:
    • 用户通过购物车提交订单;
    • 购物车生成订单;
    • 订单与支付对象建立关联。

3. Hard 难度:实时协作平台对象图

下面展示在线多人编辑平台在某一时刻的内部状态快照。该图除了包含一个示例用户 u1 : User(David)外,还增加了多个在线用户对象,清晰展示了对象间的关联关系:

参与协作
参与协作
参与协作
关联文档
通过会话发送
u1 : User
name = David
u2 : User
name = Alice
u3 : User
name = Bob
d1 : Document
version = 5.2
s1 : Session
status = Active
m1 : Message
content = 编辑保存成功

说明

  • 用户对象

    • u1 表示用户 David,
    • u2 表示在线用户 Alice,
    • u3 表示在线用户 Bob。
      他们都通过箭头表示正在参与相同的协作会话 s1
  • 文档对象 d1

    • 表示当前编辑的文档,版本号为 5.2。
  • 协作会话对象 s1

    • 状态为 Active,记录当前正在进行的团队协作信息,并与文档 d1 关联,反映该会话对应于哪个文档。
  • 消息对象 m1

    • 内容为 “编辑保存成功”,通过箭头与协作会话 s1 关联,表示相关编辑消息通过该会话被发送出去。

小结

对象图提供了系统在某一具体时刻的状态快照,有助于了解实际对象的属性和它们之间的联系。

相关文章:

  • 云存储服务器的作用都有哪些?
  • win10安装wget工具
  • Day1一切从安装有利工具开始
  • 反射率均值与RCS均值的计算方法差异
  • dockerTeskTop安装dify及使用deepseek
  • Git版本管理系列:(一)使用Git管理单分支
  • 【Shell】模拟爬虫下载天龙八部小说
  • 关于Spring MVC处理JSON数据集的详细说明,涵盖如何接收和发送JSON数据,包含代码示例和总结表格
  • Java中介者模式详解
  • introduceHLSL
  • 2.7/Q2,Charls最新文章解读
  • 数智读书笔记系列027:《医疗健康大数据治理》构建智慧医疗的核心基石
  • JS Bom对象
  • AI小白:AI算法中常用的数学函数
  • 【正点原子】STM32MP135去除SD卡引脚复用,出现 /dev/mmcblk1p5 not found!
  • (done) 并行计算 CS149 Lecture4 (并行编程基础)
  • C++自学笔记——动态创建对象
  • 【Linux高级IO(二)】初识epoll
  • 我的NISP二级之路-01
  • Docx4j 设计思想、工作原理与核心接口说明(基于 3.2.2 版本)
  • 一站式做网站开发/网络推广运营是做什么
  • 做网站用什么服务器/友情链接多久有效果
  • 网站整站html/视频推广渠道有哪些
  • 公司注册需要哪些资料/武汉网站开发公司seo
  • 深圳网站制作公司哪家好/沈阳seo优化排名公司
  • 沙朗镇做网站公司/网站源码下载