迹忆客 专注技术分享

当前位置:主页 > 学无止境 >

从 UML 类图生成 Dart 代码

作者:迹忆客 最近更新:2022/08/16 浏览次数:

我最近看到的一些文章展示了如何将 Dart 代码映射到 UML,甚至如何将 Dart 代码逆向工程到 UML(使用 Plant UML 表示法),但是发现没有一篇文章展示了如何从 UML 模型自动生成 Dart 代码.

我们开始寻找一些合适的 OS UML 建模工具来支持 Dart 并且遇到了这个工具,NClass。它为我打勾了几个框,因为它相对较小,仅支持类和用例图,具有 C#Java 代码的现有代码生成能力,并且是用 C# 编写的。不幸的是,只有 Windows。

NClass 采用针对相关语言使用专门的类图的方法,以便更好地支持代码生成。就纯 UML 而言,这当然需要一些自由,但我相信它支持的代码生成能力是值得的。目前已支持 Dart 类图,这是本文的重点,代码生成将很快添加,并将成为未来文章的主题。

作为我上面提到的专业化水平的一个例子,请看下图,显示 UML 中的各种类类型:-

flutter classes 类图

请注意,我们有一个名为 Mixin 的类,它不仅仅是名为 Mixin,它具有特定于 Dart Mixin 类的属性(当然不存在于 C# 或 Java 中)。 下图显示了可以将 Mixin 类创建为类:

flutter mixin class 类

此外,它是一个 Mixin,它不能有构造函数,所以在 Mixin 类中不能添加构造函数:

Flutter mixin 类 无构造函数

Dart 中当然也不能使用析构函数,因此 Dart 类图也删除了这些析构函数。

下图显示了 Dart 支持的进一步专业化:

Flutter Dart 类图

请注意这里的一些事情,Dart 类图可以与 C#Java 一起添加,支持命名构造函数,就像在 Dart 中一样。 还支持标准 UML 构造,例如字段、属性(get、set)、方法和各种级别的可见性。 工厂构造函数被创建为专门的构造函数:

Flutter 工厂构造函数

请注意,工厂复选框和构造函数名称中的“factory”一词。 我们还会注意到有一个 Override 复选框,它旨在映射到 Dart 的 @override 注解。 Hider、Virtual 和 Sealed 的其他复选框不适用于 Dart,因此显示为灰色。

所以我们明白了,如果我们在 NClass 中查看提供的项目文件,你会看到 Dart 的其他专业化的点点滴滴。 目前缺少一些东西,特别是对“late”和“final”字段以及构造函数参数上的“this”注释的支持。 这些可以稍后添加,但是,现在这里已经足够从我们的 Dart 类图中开始生成 Dart 代码了。

这就是类图的全部内容,从这些图生成实际的 Dart 代码将在接下来的文章从 UML 生成 Dart 代码 - 代码生成中进行描述。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

从 UML 生成 Dart 代码——代码生成

发布时间:2022/08/16 浏览次数:168 分类:学无止境

这是这篇 从 UML 生成 Dart 代码 - 类图文章的附带文章,我们在 `NClass UML` 工具中添加了 Dart 专用类图。 请快速阅读这篇文章,它概述了我们在这里所做的事情以及在哪里可以找到资源等

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便