Android-Activity 和 Android-Fragment 之间的关系是什么; Activity/Fragment 和 UML class 图中的 ViewModel?

What is the relationships between Android-Activity and Android-Fragment; Activity/Fragment and ViewModel in UML class diagram?

让我们简要解释一下这些术语。

  1. Android-Activity是独立的,可以呈现视图本身。
  2. Android-Fragment 不能独立 运行 并且需要一个 Android-activity 作为它的宿主,这意味着当 Android- activity is/was 销毁,然后 Android-片段也将被销毁。 Android-片段没有严格指定哪个 Android-activity 应该或可以承载它,只要它是 Android-activity 那么你'再好。
  3. Android-activity 和 Android-fragment 都可以有 ViewModel。
  4. ViewModel 始终依赖于 Android-activity 或 Android-片段生命周期,这意味着当 Android-activity/ Android-fragment is/was 销毁然后 ViewModel 也将被销毁(配置更改除外)。

让我们看看 UML class 图中定义的一些关系。

  1. 组合(不确定,因为 Android-activity 不依赖于 Android-片段)
  2. 聚合(不确定,因为如果 Android-activity 与 ViewModel 一样被破坏,Android-片段将被破坏,聚合鼓励双方都可以生存有自己的)
  3. 关联(可能是或否?)
  4. 依赖性(可能是或不是?)
  5. 泛化(绝对没有)
  6. 变现(肯定没有)

现在,要在 UML Class 图上对它们进行建模,有一些问题:

在这两种情况下,适当的关系是一个组合,因为当父级被销毁时,子级也被销毁。

多重性1意味着每个片段都需要一个Activity。

多重性0..*意味着多个Fragment可以是同一个Activity的一部分,但是一个Activity不一定有任何Fragment。

ViewModel 的关系如下:

更新:在您的问题中,您添加了配置更改的例外。在那种情况下,与 ViewModel 的关系不是组合。但是如果你不想让这个异常影响你的模型,你可以在图表中添加一个注释来解释这个异常。