android – 模型视图演示者 – 相同的视图,不同的演示者

前端之家收集整理的这篇文章主要介绍了android – 模型视图演示者 – 相同的视图,不同的演示者前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用MVP构建一个 Android应用程序,我对此模式有一个疑问.

假设我有一个用于创建新人的屏幕.此屏幕将显示一个用于插入名称的EditText,另一个用于姓氏的ImageText,一个用于显示所选照片图片的ImageView等.
这将导致一个View接口,由Fragment实现.它将与一个Presenter接口配合,由另一个类实现.

精细.

现在我有另一个功能:用于编辑现有人的屏幕.
碰巧,此功能的视图与创建新人的视图相同.然而,演示者是不同的.它将从db中加载现有人员以使用当前数据预先填充视图开始,单击“save”时对数据库的操作将是更新而不是插入.

因此,我认为这是MVP的一个示例,其中一个View与演示者的不同实现一起工作以实现不同的用例.

>您认为这是一个正确的假设,还是您认为不同的功能应该具有不同的View和Presenter接口?
>此外,如果您使用的是常见的View和不同的Presenter,View的实现是否会很常见,还是会导致两个类实现相同的界面?在实践中,我看到两个选项.

>只有一个Fragment实现View.根据用户是要创建新人还是更新现有人,Fragment应该接收并使用不同的Presenter.
>有两个碎片.每个人都会实例化一个不同的Presenter.使用组合或继承来避免在两个片段之间复制代码.

在这些情况下,您认为更好的做法是什么?

谢谢.

解决方法

当您使用Android上的MVP模式创建类似CRUD的应用程序时,您将遇到此问题.

您可以非常轻松地拥有单一视图,只要您在课堂上很好地记录它可以为两个不同的演示者提供“视图”,那么它就可以了.

我个人建议创建2个视图,一个用于’创建’,一个用于’编辑'(它们可能是相同的(现在),但是将它们分开可以清楚地表明它们是不同的东西.)

您可以很容易地看到未来的情况(或此模式的另一个影响),其中“创建”和“编辑”视图实际上具有不同的API.或略有不同的视觉提示,例如一个标记为“创建/添加”的按钮和另一个标记为“更新”的按钮.

我个人创建了一个view-library / helper类,两个Views都从中提取逻辑.这可以帮助您减少整体LoC,即使您进行2’视图’类.这样做的好处是您可以轻松更改“创建”/“编辑”视图,而无需担心影响另一个视图. (我倾向于认为2个视图文件,当创建/编辑之间甚至存在“轻微”差异时,将更容易维护)

猜你在找的Android相关文章