UML – 对象图

UML – 对象图

对象图是由类图派生出来的,所以对象图依赖于类图。

对象图表示类图的一个实例。类图和对象图的基本概念是相似的。对象图也表示一个系统的静态视图,但这个静态视图是系统在某个特定时刻的快照。

对象图是用来呈现一组对象及其关系的实例。

对象图的目的

应该清楚地了解一个图的目的,以便实际地实现。对象图的目的与类图相似。

不同的是,类图表示一个由类和它们的关系组成的抽象模型。然而,一个对象图代表一个特定时刻的实例,其性质是具体的。

这意味着对象图更接近于实际的系统行为。其目的是为了捕捉系统在某一特定时刻的静态视图。

对象图的目的可以概括为

  • 正向和反向工程。

  • 一个系统的对象关系

  • 一个交互的静态视图。

  • 从实际角度理解对象行为和它们的关系

如何绘制对象图

我们已经讨论过,对象图是类图的一个实例。这意味着对象图由类图中使用的事物的实例组成。

所以这两种图都是由相同的基本元素组成的,但形式不同。在类图中,元素以抽象形式表示蓝图,而在对象图中,元素以具体形式表示现实世界的对象。

为了捕捉一个特定的系统,类图的数量是有限的。然而,如果我们考虑对象图,那么我们可以有无限数量的实例,这些实例在本质上是独一无二的。只有那些对系统有影响的实例才会被考虑。

从上面的讨论中可以看出,一个单一的对象图不能捕捉到所有必要的实例,或者说不能指定一个系统的所有对象。因此,解决方案是–

  • 首先,分析系统,决定哪些实例有重要的数据和关联。

  • 第二,只考虑那些将涵盖功能的实例。

  • 第三,做一些优化,因为实例的数量是无限的。

在绘制对象图之前,应该记住并清楚地了解以下几点

  • 对象图由对象组成。

  • 对象图中的链接是用来连接对象的。

  • 对象和链接是用来构建对象图的两个元素。

在这之后,在开始构建图之前,要决定以下事情 —

  • 对象图应该有一个有意义的名字来表明其目的。

  • 最重要的元素要被确定。

  • 对象之间的联系应该被明确。

  • 不同元素的值需要被捕捉,以包括在对象图中。

  • 在需要更清晰的地方添加适当的注释。

下面的图是一个对象图的例子。它代表了我们在类图一章中讨论过的订单管理系统。下图是系统在某次购买时的一个实例。它有以下对象。

  • 客户

  • 订单

  • 特殊订单

  • 正常订单

现在客户对象(C)与三个订单对象(O1, O2, 和 O3)相关。这些订单对象与特殊订单和正常订单对象(S1、S2和N1)相关联。在考虑的特定时间内,客户有以下三个不同编号的订单(12、32和40)。

客户可以在未来增加订单数量,在这种情况下,对象图将反映这一点。如果观察订单、特殊订单和正常订单对象,你会发现它们有一些值。

对于订单,值是12、32和40,这意味着对象在捕获实例的特定时刻(这里认为购买的特定时间是时刻)具有这些值。

对于特殊订单和普通订单对象来说也是如此,它们的订单数分别为20、30和60。如果考虑到不同的购买时间,那么这些值就会相应地改变。

考虑到上面提到的所有问题,我们绘制了以下对象图

UML - 对象图

在哪里使用对象图

对象图可以被想象成一个运行中的系统在某个特定时刻的快照。让我们考虑一个运行中的火车的例子

现在,如果你对运行中的火车进行快照,那么你会发现它的静态图片有以下几点

  • 一个正在运行的特定状态。

  • 一个特定的乘客数量。如果在不同的时间拍摄,这个数量会发生变化。

在这里,我们可以想象运行中的火车的快照是一个具有上述价值的对象。对于任何现实生活中的简单或复杂的系统都是如此。

简而言之,可以说,对象图是用于 −

  • 制作一个系统的原型。

  • 逆向工程。

  • 对复杂的数据结构进行建模。

  • 从实际角度理解系统。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程