Typescript 和 LifeCycle Hooks 中 Angular 2 的 UML Class 图

UML Class Diagram for Angular 2 in Typescript and LifeCycle Hooks

我正在寻找一些关于 UML Class 图的示例 Angular 2 in Typescript。

我不确定如何在图中定义 LifeCycle Hooks,因为通常使用

export class BlahComponent implements OnInit {
}

而不是 inherits 这个词,因此至少在 LifeCycle Hooks 和 Class 本身之间没有继承关系。

这也提出了一个问题,在 UML 图表中 父子组件 Classes 之间是否应该有任何联系(关系)。这是代替,因为子组件不 inherit 父组件,但只期望更改它们之间的共享变量。

在我看来,Angular 的 UML Class 图通常只是 class,与任何其他 class 组件没有任何明确的联系。我很乐意就此主题提供一些说明和示例。

实施

根据Angular Documentation for onChanges这是一个接口我创建了一个示例图如下

它认为从 UML 1.4.2[source] 开始,对象图已过时,所以我暂时创建了 <<use>> 标签,用于在 class 中显示 class 的实例。这是错误的,但仅作为示例,因为根据文档 EventEmitter 是 class 并且人们倾向于在代码中使用 event = new EventEmitter()

备注

上图是使用 PlantUML 创建的,它提供了相应更改图表的方法。

您的图表几乎是正确的,但是≪use≫-箭头指向错误的方向。 Class ExplorativeSearchFilterComponent 指的是 EventEmitter,而不是相反。在大多数情况下,≪use≫-箭头从调用者指向被调用者,但在这种情况下,EventEmitter 不知道它在调用谁,而 ExplorativeSearchFilterComponent 主动使用 EventEmitter 以确保它被调用。

有关将 UML 用于 Angular 应用程序的更多信息,请参阅我的白皮书:Technical design in UML for Angular applications