我正在使用 MVP 构建一个 Android 应用程序,我对这种模式有一个疑问。
假设我有一个用于创建新人的屏幕。此屏幕将显示一个EditText
用于插入姓名、另一个用于姓氏、一个ImageView
用于显示选择的照片图片等。这将导致一个View
界面,由Fragment
. 它将与一个Presenter
接口合作,由另一个类实现。
美好的。
现在我有了另一个功能:用于编辑现有人员的屏幕。碰巧的是View
,此功能与创建新人的功能相同。但是,Presenter
情况不同。它将首先从数据库加载现有人员以使用当前数据预填充视图,并且单击“保存”时对数据库的操作将是更新而不是插入。
所以,我认为这是 MVP 的一个例子,其中一个 View 与 Presenter 的不同实现一起工作以实现不同的用例。
你认为这是一个正确的假设,还是你认为不同的特性应该有不同的
View
和Presenter
接口?另外,如果您使用 common
View
和 differentPresenters
,那么实现View
是通用的,还是会导致两个类实现相同的接口?在实践中,我看到了两种选择。只有一个
Fragment
实现View
. 根据用户是要创建新人还是更新现有人,Fragment 应该接收并使用不同的 Presenter。有两个
Fragment
s。每一个都会实例化一个不同的Presenter
. 使用组合或继承来避免两个片段之间的代码复制。
在这些情况下,您认为怎样做比较好?
谢谢。