android 导航图中全局操作和目的地特定操作之间的区别?
Difference between global actions and destination specific action in android navigation graphs?
在 android 导航图中,我们有 global actions 和 目的地内的操作 .
使用全局动作,多个目的地可以重复使用一个动作。那么在目的地内使用操作的优势是什么?
换句话说,在整个导航图中使用全局动作的缺点是什么?
将图表视为 class 层次结构会很有帮助:添加操作就像向基础 class 添加方法。这使得该操作可用于所有子classes(即该图中的所有目的地)。
面向对象编程语言的一个关键部分是encapsulation:
Encapsulation is used to hide the values or state of a structured data object inside a class, preventing unauthorized parties' direct access to them.
当您将一个动作添加到单个动作时,除了在导航编辑器中使其显而易见之外,您还提供了一定程度的封装,确保仅从该特定目的地使用该动作。
使用 Safe Args 时差异更加明显,因为 Safe Args 会生成与您的图表匹配的 Directions
classes 的 class 层次结构:全局操作出现在 YourNavGraphIdDirections
基础 classes 上,目标特定操作出现在个人 YourFragmentDirections
subclasses.
因此,通过滥用全局操作,您会弄乱每个目的地可用的可用方法(即操作)列表,使您更难确定对于给定目的地什么才是适当的操作。
在 android 导航图中,我们有 global actions 和 目的地内的操作 .
使用全局动作,多个目的地可以重复使用一个动作。那么在目的地内使用操作的优势是什么?
换句话说,在整个导航图中使用全局动作的缺点是什么?
将图表视为 class 层次结构会很有帮助:添加操作就像向基础 class 添加方法。这使得该操作可用于所有子classes(即该图中的所有目的地)。
面向对象编程语言的一个关键部分是encapsulation:
Encapsulation is used to hide the values or state of a structured data object inside a class, preventing unauthorized parties' direct access to them.
当您将一个动作添加到单个动作时,除了在导航编辑器中使其显而易见之外,您还提供了一定程度的封装,确保仅从该特定目的地使用该动作。
使用 Safe Args 时差异更加明显,因为 Safe Args 会生成与您的图表匹配的 Directions
classes 的 class 层次结构:全局操作出现在 YourNavGraphIdDirections
基础 classes 上,目标特定操作出现在个人 YourFragmentDirections
subclasses.
因此,通过滥用全局操作,您会弄乱每个目的地可用的可用方法(即操作)列表,使您更难确定对于给定目的地什么才是适当的操作。