从 UML 类图生成 Dart 代码
我最近看到的一些文章展示了如何将 Dart 代码映射到 UML,甚至如何将 Dart 代码逆向工程到 UML(使用 Plant UML 表示法),但是发现没有一篇文章展示了如何从 UML 模型自动生成 Dart 代码.
我们开始寻找一些合适的 OS UML 建模工具来支持 Dart 并且遇到了这个工具,NClass
。它为我打勾了几个框,因为它相对较小,仅支持类和用例图,具有 C#
和 Java
代码的现有代码生成能力,并且是用 C#
编写的。不幸的是,只有 Windows。
NClass
采用针对相关语言使用专门的类图的方法,以便更好地支持代码生成。就纯 UML 而言,这当然需要一些自由,但我相信它支持的代码生成能力是值得的。目前已支持 Dart 类图,这是本文的重点,代码生成将很快添加,并将成为未来文章的主题。
作为我上面提到的专业化水平的一个例子,请看下图,显示 UML 中的各种类类型:-
请注意,我们有一个名为 Mixin
的类,它不仅仅是名为 Mixin,它具有特定于 Dart Mixin 类的属性(当然不存在于 C# 或 Java 中)。 下图显示了可以将 Mixin 类创建为类:
此外,它是一个 Mixin,它不能有构造函数,所以在 Mixin 类中不能添加构造函数:
Dart 中当然也不能使用析构函数,因此 Dart 类图也删除了这些析构函数。
下图显示了 Dart 支持的进一步专业化:
请注意这里的一些事情,Dart 类图可以与 C#
和 Java
一起添加,支持命名构造函数,就像在 Dart 中一样。 还支持标准 UML 构造,例如字段、属性(get、set)、方法和各种级别的可见性。 工厂构造函数被创建为专门的构造函数:
请注意,工厂复选框和构造函数名称中的“factory”一词。 我们还会注意到有一个 Override 复选框,它旨在映射到 Dart 的 @override
注解。 Hider、Virtual 和 Sealed 的其他复选框不适用于 Dart,因此显示为灰色。
所以我们明白了,如果我们在 NClass
中查看提供的项目文件,你会看到 Dart 的其他专业化的点点滴滴。 目前缺少一些东西,特别是对“late”和“final”字段以及构造函数参数上的“this”注释的支持。 这些可以稍后添加,但是,现在这里已经足够从我们的 Dart 类图中开始生成 Dart 代码了。
这就是类图的全部内容,从这些图生成实际的 Dart 代码将在接下来的文章从 UML 生成 Dart 代码 - 代码生成中进行描述。
相关文章
从 UML 生成 Dart 代码——代码生成
发布时间:2022/08/16 浏览次数:168 分类:学无止境
-
这是这篇 从 UML 生成 Dart 代码 - 类图文章的附带文章,我们在 `NClass UML` 工具中添加了 Dart 专用类图。 请快速阅读这篇文章,它概述了我们在这里所做的事情以及在哪里可以找到资源等