Android Developer Documentation指出,应该通过实现接口来避免片段之间的直接通信。在进一步搜索时,我发现的原因是它导致碎片之间的紧密耦合。我很难理解为什么它会导致紧耦合以及为什么这可能是一个问题。
有人可以通过示例代码显示
答案 0 :(得分:0)
Android片段通常被认为是MVP或MVC模式中的视图,它们不应包含任何应用程序逻辑。应将片段中的所有有意义事件委托给演示者,演示者通常通过Activity
实现。
假设您有一个片段A
和一个片段B
。片段A
显示项目列表,片段B
显示所选项目的详细信息。如果直接传递片段,它会在它们之间产生紧密耦合,因为片段A
需要一个具体的片段B
引用才能实例化它。如果您的应用程序要求发生变化,例如通过显示片段C
而不是B
,则会弹出紧耦合,您将不得不处理它。您可以通过在片段中引入Presenter
或Controller
接口来避免这种耦合。通过调用此接口方法,您可以确保将presenter逻辑的实现与片段外观逻辑分离。
有关开发解耦应用程序体系结构的更多信息,请查看本文http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/