关于Android MVP设计模式

对于Android MVP设计模式也看了很多的文章,然后趁着中午有空写一点自己的感想,有不对的地方欢迎大家指出,谢谢。
首先MVP
M跟之前的MVC一样,对应的model层,就是一些Bean
而Mvp中的V,代表的其实只是一个Acitity,这个Activity将具体的业务逻辑操作统统拿到了另外一个Preshenter层中去进行,我们的现在的Activity单纯就是用来做跟界面有关的操作,是真正意义上的View层。在之前我们大多数人用的MVC模式中,Activity往往承担了很多逻辑上的业务,因此会变得十分的臃肿。
最后讲一下Mvp中的P–>presenter。Presenter其实可以理解为MVC中controller的角色,他作为一个中枢控制层,连接了View层和逻辑层进行通信,并把逻辑和界面很好的结合在了一起,下面我会详细介绍各个层的功能。

总结一下,MVP的基本架构包括一下几个部分:
首先,逻辑业务层接口->该层为接口,声明了许多跟业务有关的方法,比如getdata(),login()……等

public interface Main_Biz {
    void getData();
    void login();
}

再接下来是,逻辑业务层impl–>该层主要是对上一层接口的具体实现

public class Main_Bizimpl implements Main_Biz {
    @Override
    public void getData() {
        //请求网络数据具体实现
    }

    @Override
    public void login(String name, String password) {
        //根据用户名和密码进行登陆操作
    }


}

然后是View的接口层,在这一层中,我们会声明一些来更新UI的方法,并在Activity中进行实现。比如我要在View层(其实在MVP中就是Activity)进行dialog的显示与隐藏,在View的Listview中进行界面的刷新……于是我们可以在定义一个MainView_service的接口类来罗列这些方法:

public interface MainView_service {
    void showDialog();
    void dismisDialog();
    void UpdateListView(List list);
}

再接下来,是原本MVC模式中“Controller”角色的扮演者Presenter,该层可以理解为对所有其他层的一个中枢的控制层,我们在这一层中来控制业务逻辑和界面,将两者结合起来。

public class MainPresenter {
    private MainView_service mainView_service;
    private Main_Biz main_biz;

    public MainPresenter(MainView_service mainView_service) {
        this.mainView_service = mainView_service;
        main_biz=new Main_Bizimpl();
    }

    public void login(String name,String password){
        mainView_service.showDialog();
        main_biz.login(name, password);
        mainView_service.dismisDialog();

    }
}

最后就是我们的View层,其实就是我们的Activity,来具体显示我们的界面UI。

public class MainActivity extends AppCompatActivity implements MainView_service {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}


@Override
public void showDialog() {

}

@Override
public void dismisDialog() {

}

@Override
public void UpdateListView(List list) {

}

OK,以上就是简单的MVP模式了,如果有哪里理解的不对的地方,欢迎各位大神在下方评论的地方为小弟指出,感激不尽!!

你可能感兴趣的:(Android,设计模式)