如何为 SPA 和 REST API 创建 class 图?

How do you create a class diagram for a SPA and a REST API?

上下文

我创建了一个 SPA(单页应用程序)和一个 REST API。 Backbone.js 用于开发 SPA,Codeigniter 用于 REST 的服务器端实现 API。

问题

对于 MVC 应用程序,我们可以像往常一样绘制单个 class 图。但是如何为具有 SPA 和 REST API 的系统创建 class 图?您是为每个应用程序创建两个单独的 class 图,还是为两个应用程序创建一个 class 图?如果有一张图,SPA和REST可以用什么relationships/associations来连接API?

如何组织服务器和客户端的 class 图

  1. 如果组件没有公共 class 元素,则公共 class 图毫无意义。
  2. 很可能您有一些共同的classes,因为客户端和服务器使用现实世界中的相同对象,并且适当的classes 应该是相同的。每个这样的 class 也应该只有一个代码实现。由于这些常见的 classes 将属于域区域(方法,通常用于您的主题),您可以将它们全部分离到另一个 package 中。因此,您将拥有两个相交的组件和三个不相交的包。您也可以绘制原始包图。
  3. 如果组件的 class 图很大,总是制作两个(或更多)它们,以某种特殊方式标记常见的 classes。 (蓝色表示 classes 与组件 A 相同,红色表示 classes 与组件 B 相同...)。
  4. Class 图不是为了模拟行为,例如调用组件和事物。这将是一种糟糕的风格。如果您仍想写下对理解很重要的行为细节,请在评论中写下。
  5. 要对组件的行为连接进行建模,请使用通信图或时序图。