在android导航图中,我们在目标位置有global actions和 动作 。
使用全局操作,多个目标可以重用一个操作。那么在目的地内使用动作的好处是什么?
换句话说,在整个导航图中使用全局动作的缺点是什么?
答案 0 :(得分:1)
将图形视为类层次结构会有所帮助:添加操作就像向基类添加方法。这样,该操作就可用于所有子类(即该图中的所有目标)。
面向对象的编程语言的关键部分是encapsulation:
封装用于在类内隐藏结构化数据对象的值或状态,以防止未授权方直接访问它们。
将动作添加到单个动作中时,除了使其在导航编辑器中显而易见之外,还提供了一定的封装级别,以确保仅从该特定目标使用该动作。
使用Safe Args时,差异更加明显,因为Safe Args会生成与您的图形完全匹配的Directions
类的匹配类层次结构:全局操作出现在YourNavGraphIdDirections
基类和目标上具体操作将显示在各个YourFragmentDirections
子类上。
因此,通过滥用全局操作,您将使每个目标上可用的可用方法(即操作)的列表混乱不堪,这使您很难确定对于给定目标实际上是什么适当的操作。