片段间通信

时间:2016-04-13 16:13:32

标签: android android-fragments

Android Developer Documentation指出,应该通过实现接口来避免片段之间的直接通信。在进一步搜索时,我发现的原因是它导致碎片之间的紧密耦合。我很难理解为什么它会导致紧耦合以及为什么这可能是一个问题。

有人可以通过示例代码显示

  1. 片段之间的直接通信如何起作用。
  2. 为什么这种方法会有问题
  3. 如何使用接口解决上述问题。

1 个答案:

答案 0 :(得分:0)

Android片段通常被认为是MVP或MVC模式中的视图,它们不应包含任何应用程序逻辑。应将片段中的所有有意义事件委托给演示者,演示者通常通过Activity实现。

假设您有一个片段A和一个片段B。片段A显示项目列表,片段B显示所选项目的详细信息。如果直接传递片段,它会在它们之间产生紧密耦合,因为片段A需要一个具体的片段B引用才能实例化它。如果您的应用程序要求发生变化,例如通过显示片段C而不是B,则会弹出紧耦合,您将不得不处理它。您可以通过在片段中引入PresenterController接口来避免这种耦合。通过调用此接口方法,您可以确保将presenter逻辑的实现与片段外观逻辑分离。

有关开发解耦应用程序体系结构的更多信息,请查看本文http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/

相关问题