java – Android中的MVP设计模式问题
作者:互联网
我在MVP上做R& D,我正在考虑将这个设计模式用于我的下一个项目.
但我面临着这种设计模式的问题.
请看下面的java代码.
我有一个BaseActivity类
public class BaseActivity extends AppCompatActivity {
}
接口BaseView
public interface BaseView {
void showLoader();
void hideLoader();
}
另外一个接口扩展了BaseView接口以维护视图之间的关系
//Game start from here
public interface TestView extends BaseView {
void showResult();
}
这是最后的活动:
public class MyTestActivity extends BaseActivity implements TestView {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_test);
}
@Override
public void showLoader() {
}
@Override
public void hideLoader() {
}
@Override
public void showResult() {
}
}
来自BaseView的2个方法showLoader()和HideLoader()对于扩展BaseView的每个接口都是通用的.
这就是我将它们保留在BaseView中的原因.直到现在都没问题.
问题是:我必须在实现BaseView或其Child接口的每个类中实现和提供这些方法的定义.
示例:此处
TestActivity extends BaseActivity implements TestView
因此,为了防止这个问题,我将BaseView实现为BaseActivity并提供这些方法定义.
但我可以看到BaseView从BaseActivity转向TestActivity(如果我在BaseActivity中实现BaseView)
而且还来自已经实现BaseView的TestView.
这是我的要求TestView必须扩展BaseView.
如果我没有在BaseActivity中实现BaseView,我需要在每个Activity类中实现showLoader()和hideLoader()方法.现在我在BaseView中有2个方法,他们可以更多…
请建议任何解决方案.
解决方法:
只需在BaseActivity中实现默认实现.因此,如果需要,您可以覆盖子项中的方法.
BaseActivity implements BaseView
标签:java,oop,android,mvp,android-mvp 来源: https://codeday.me/bug/20190627/1305002.html