我正在使用MVP构建一个Android应用程序,我对此模式有一个疑问。
假设我有一个创建新人的屏幕。此屏幕将显示一个EditText
用于插入姓名,另一个用于显示姓氏,一个ImageView
用于显示已挑选的照片图片等。
这将导致一个View
接口,由Fragment
实现。它将与一个Presenter
接口合作,由另一个类实现。
精细。
现在我有另一个功能:编辑现有人的屏幕。
碰巧的是,此功能的View
与创建新人的功能相同。但是,Presenter
是不同的。它将从db中加载现有人员以使用当前数据预先填充视图开始,单击“save”时对数据库的操作将是更新而不是插入。
所以,我认为这是MVP 的一个例子,其中一个View使用演示者的不同实现来实现不同的用例。
您认为这是一个正确的假设,还是您认为不同的功能应该有不同的View
和Presenter
接口?
此外,如果您使用的是共同View
且不同的Presenters
,View
的实施是否会很常见,或者会导致实施相同的界面两节课?在实践中,我看到两个选项。
只有一个Fragment
实施View
。根据用户是要创建新人还是更新现有人,Fragment应该接收并使用不同的Presenter。
有两个Fragment
个。每个人都会实例化一个不同的Presenter
。使用组合或继承来避免在两个片段之间复制代码。
在这些情况下,您认为哪种情况更好?
感谢。