我正在重构一个Android组件以采用MVP架构模式。我面临的问题是我有一个片段,其中嵌套了其他片段。
1-父片段会根据某些条件隐藏/显示其中一个嵌套片段。
2-子片段将数据传递给父片段,该父片段正受到here的启发,callback mechanism between fragment and activity对其进行观察。
我有2个问题:
1-如果我认为片段是MVP的视图,那么我应该对父片段和子片段使用不同的演示者(演示者和视图之间的一对一映射),还是对两者都只使用一个演示者,为什么?
2-如果我应该使用不同的演示者,那么我应该如何处理从子片段到父片段的数据传递,因为我几乎不了解缺点。和优点。的:
答案 0 :(得分:2)
与大多数架构师问题一样,老实说,我认为没有正确或错误的方法。因此,请仅将此作为建议(我将如何实施)
每个 MVP 单元应包含其自己的演示者,这意味着有一个父演示者(用于父片段)和几个儿童节目主持人(每个儿童片段一个)。
子演示者都包含一个 parentPresenter 字段,该字段用作将数据/消息从子传递到父母。此 parentPresenter 不是真正的 presenter 对象,而是一个仅包含所需呼叫的界面。
如果您需要以其他方式(从父母到孩子)传递数据/消息,则可以通过接口方法在视图中:
这样,整个通信都隐藏在干净的接口后面,并且还可以很好地测试。希望这对您有所帮助,让我知道...
答案 1 :(得分:1)
我在应用程序中执行的操作是在父片段和子片段之间使用回调机制在之间传递数据。 我还为每个子片段都创建了一个不同的演示者,因为如果有一天我只想使用其中一个子片段,那么我只会覆盖它的演示者方法。