您的位置:首页 > 移动开发 > Android开发

Android开发truck快速开发框架MVP实现(二)

2018-01-23 09:42 537 查看

简介

 truck项目的github地址:https://github.com/hookYuan/Truck
Android开发上的设计模式也是变了好多次,但是在近两年提的最多的还是mvp设计模式和mvvm设计模式(mvc很少有人推荐,一般只是用作对比)。对于mvp和mvvm我不想评论他们的好坏,我觉得用设计模式的好处就是可以实现解耦和提高代码的可读性。由于
我近一年代码风格主要采用mvp设计模式,所以我再框架中集成了mvp的快速实现。
 mvp主要是针对Acitvity和fragment的代码做的简单封装。基本设计思想是通过MVPActivity建立Activity和Presenter的一对一对应
关系,然后在presenter中可以调用Activity中的代码,也可以在Presenter中操作Moudle中的代码。

示例

 MVPActivity中添加Presenter的泛型,然后可以通过getP()方法获取Presenter实例,具体使用方法如下:
public class TestActivity extends MVPActivity<PTest> {

@Override
protected void initData(Bundle savedInstanceState) {
getP().getPersonList();
}

@Override
public int getLayoutId() {
return R.layout.activity_test;
}
}

XPresenter中添加Activity的泛型,然后可以通过getV()方法获取Activity的实例,具体使用方法如下:

public class PTest extends XPresenter<TestActivity> {

public void getPersonList() {
//TOTO 其他操作
}
}
MVPFragment和MVPActivity有相同的用法。MVP的内部实现主要是通过反射泛型动态生成Presenter实例。

快速实现:

 尽管这样的方式实现MVP的模式已经十分的方便了,但是如果你一直是一个人开发,平时不怎么用设计模式,你还是会觉得为什么要这么麻烦?代码放到Activity中不是更快捷吗?答案是肯定的,是的,确实你的方式更快。但是你没有考虑过让数据和界面解耦吗?这样你费了九牛二虎之力搭建的界面,和费了九牛三虎之力写的逻辑代码都能实现单独的复用。从长远来看,这样不是更方便吗。为了更快的方式实现以上mvp的设计模式实现,大家可以采用采用MVPActivity模板。当你创建的Activity的时候,一键自动生成MVP风格代码。具体实现如下:

 导入MVPActivity模板。模板的位置在truck项目下的template文件夹下,找到MVPActivity模板后,打开Android studio的安装目录:......\Android Studio\plugins\android\lib\templates\activities。找到activities文件夹后,复制放入我们的MVPActivity模板即可,重启Android studio。
创建MVPActivity模板。创建MVPActivity和你平时创建Activity的方式一样,只是这里在Activity的创建列表中会多一项MVPActivity模板,选择MVPActiviyt模板即可。
预填参数。这时候你见到的界面应该是如下图,这里的FunctionName即你需要创建的Activity名称。module name,为了给代码结构模块化分类。例如创建Activity为user模块,只需填入user即可。创建MVPActivity会同时创建一个与之对应的Presenter.这样你就可以愉快地写MVP风格代码了。


ps:后面还有很多快速实现的技巧,truck框架的目的是让开发更简单、更高效。
最后附上truck快速开发交流qq群:698442320
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: