我可以为两个不同的环境使用不同的两个 class 图吗?

can I use different two class diagrams for two different environments?

我正在为 iOS 和 Android 这两个不同的环境开发项目,我很难为两个不同的系统设计一个 class 图,所以我可以使用两个 class 图,一个用于 android,另一个用于 iOS 吗?

我的意思是对使用两种不同编程语言的两个环境使用相同的 class 图没有任何意义

制作多少图表并不重要。一般来说,最好的做法是不要用太多 class 使你的图超载,所以你 应该 有多个 class 图,除了一个微不足道的模型.

但我猜真正的问题是您是否想在针对不同平台时使用相同的 classes。

这取决于您建模的抽象级别。 MDA 定义三个级别

  • CIM -> 计算独立模型
  • PIM -> 平台无关模型
  • PSM -> 平台特定模型

这或多或少相当于Zachman or IAF中定义的Conceptual/Logical/Physical层。

因此,如果您在 CIM 或 PIM 级别上建模,那么您应该使用相同的 classes。如果您在 PSM 级别上建模,那么应该根据您的平台的任何细节对系统部分使用不同的 classes。

研究 Adapter Pattern 以寻找处理多个平台的可能方法,同时仍然保持应用程序平台的核心业务逻辑独立。

UML 图不是为特定语言或 API 制作的。如果两种语言都是面向对象的,我不明白为什么你需要两个不同的 class 图。

我认为问题是您在 UML 中加入了 "too much" 细节,这不应该是这样的。让 UML 传达 class 之间交互的结构、行为或性质,而不是具体细节。

只有当语言明显不同时才更有意义,例如 javascript 是事件驱动的,而 LISP 是函数式的。