编程语言
首页 > 编程语言> > java – Android中的MVP设计模式问题

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