返回

程序员画图的正确姿势 | PlantUML(三)

前端

前言

在上一篇文章中,我们介绍了 PlantUML 中的类图、用例图和时序图。这些图表都是非常有用的,可以帮助我们更好的理解和设计我们的应用程序。在本篇文章中,我们将介绍 PlantUML 中剩下的图表类型:状态机图、对象图、部署图和活动图。这些图表都有自己独特的用途,可以在不同的场景中帮助我们更好的理解和设计我们的应用程序。

状态机图

状态机图是一种用于系统中对象状态及其之间转换的图表。它可以帮助我们更好的理解系统是如何工作的,以及在不同状态下系统会做出什么反应。

状态机图由状态、转换和事件组成。状态是系统中对象可以处于的一种情况。转换是系统从一个状态到另一个状态的变化。事件是触发转换的原因。

状态机图示例

下图是一个状态机图示例,它了一个简单的开关的状态转换。

+--------------------------------+
|                                |
|         +-------------+          |
|         |             |          |
|    +---+      ON      +---+    |
|    |   |             |   |    |
|    |   +-------------+   |    |
|    |                     |    |
+----+                     +----+
      \                   /
       \                 /
        \               /
         \             /
          +-----------+
          |  OFF   |
          +-----------+

在这个状态机图中,开关有两个状态:ON 和 OFF。开关可以从 ON 状态切换到 OFF 状态,也可以从 OFF 状态切换到 ON 状态。事件是用户按下开关。

对象图

对象图是一种用于描述系统中对象及其之间关系的图表。它可以帮助我们更好的理解系统是如何工作的,以及对象之间是如何相互作用的。

对象图由对象和连接符组成。对象是系统中的实体,它可以是类、接口、组件或其他类型的实体。连接符是对象之间关系的表示。

对象图示例

下图是一个对象图示例,它描述了一个简单的购物系统的对象。

+----------------------+
|                      |
|       +------------+  |
|       |  Customer  |  |
|       +------------+  |
|          |            |
|          V            |
|    +-------------+    |
|    |   Product   |    |
|    +-------------+    |
|          |            |
|          V            |
+------+------+------+------+
      |      |      |      |
      |      |      |      |
+------+------+------+------+
|      |      |      |      |
|  Item |  Item |  Item |  Item |
+------+------+------+------+

在这个对象图中,系统中有四个对象:Customer、Product和Item。Customer对象表示系统中的顾客。Product对象表示系统中的产品。Item对象表示顾客购买的产品。

Customer对象和Product对象之间有一条连接符,表示顾客可以购买产品。Item对象和Product对象之间也有一条连接符,表示Item对象是Product对象的实例。

部署图

部署图是一种用于描述系统中硬件和软件组件及其之间连接的图表。它可以帮助我们更好的理解系统是如何部署的,以及组件之间是如何通信的。

部署图由组件、节点和连接符组成。组件是系统中的可执行单元,它可以是应用程序、服务或其他类型的可执行单元。节点是系统中的物理设备,它可以是服务器、客户端或其他类型的物理设备。连接符是组件之间通信的表示。

部署图示例

下图是一个部署图示例,它描述了一个简单的Web应用程序的部署。

+--------------------------------+
|                                |
|             +------------+     |
|             | Web Server |     |
|             +------------+     |
|                   |            |
|                   V            |
|        +--------------------+    |
|        |  Application Server  |    |
|        +--------------------+    |
|                   |            |
|                   V            |
+--------+--------+--------+--------+
        |        |        |        |
        |        |        |        |
+--------+--------+--------+--------+
| Client | Client | Client | Client |
+--------+--------+--------+--------+

在这个部署图中,系统中有三个组件:Web Server、Application Server和Client。Web Server组件负责处理用户请求。Application Server组件负责处理业务逻辑。Client组件是用户访问系统的入口。

Web Server组件和Application Server组件之间有一条连接符,表示Web Server组件和Application Server组件之间通过网络进行通信。Client组件和Web Server组件之间也有一条连接符,表示Client组件和Web Server组件之间通过网络进行通信。

活动图

活动图是一种用于描述系统中活动及其之间关系的图表。它可以帮助我们更好的理解系统是如何工作的,以及活动之间是如何相互作用的。

活动图由活动、决策和连接符组成。活动是系统中的一个操作。决策是系统中需要做出的选择。连接符是活动和决策之间关系的表示。

活动图示例

下图是一个活动图示例,它描述了一个简单的购物系统的流程。

+--------------------------------------+
|                                      |
|                  +------------+       |
|                  |  Customer  |       |
|                  +------------+       |
|                        |              |
|                        V              |
|            +--------------+            |
|            | Place Order  |            |
|            +--------------+            |
|                        |              |
|                        V              |
+----------------------+--------------------+
|                      |                      |
|   +--------------+   |   +--------------+   |
|   | Process Order |   |   | Ship Order    |   |
|   +--------------+   |   +--------------+   |
|                      |                      |
|                      V                      |
|           +--------------------+           |
|           |  Receive Order    |           |
|           +--------------------+           |
|                                      |
+--------------------------------------+

在这个活动图中,系统中有四个活动:Place Order、Process Order、Ship Order和Receive Order。Customer对象负责Place Order活动。系统负责Process Order活动和Ship Order活动。Customer对象也负责Receive Order活动。

Place Order活动和Process Order活动之间有一条连接符,表示Place Order活动完成后,系统会执行Process Order活动。Process Order活动和Ship Order活动之间也有一条连接符,表示Process Order活动完成后,系统会执行Ship Order活动。Ship Order活动和Receive Order活动之间也有一条连接符,表示Ship Order活动完成后,Customer对象会执行Receive Order活动。

总结

在本篇文章中,我们介绍了 PlantUML 中剩下的图表类型:状态机图、对象图、部署图和活动图。这些图表都有自己独特的用途,可以在不同的场景中帮助我们更好的理解和设计我们的应用程序。希望这些图表能够帮助你更好的理解和设计你的应用程序。

延伸阅读