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

简介

 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值