无侵入、超容易使用的MVP库

项目地址

目录

目的

底层框架解析

案例 - 使用方法

目的

无侵入MVP库,不干扰当前项目的逻辑

优化Model View Presenter之间可阅读性

超低学习成本,拿上手就会用

底层框架解析

  1. 定义BasePresenter/BaseView,实现:
    • p <==> v 直接获取,缩减代码
    • 规范使用,增加严谨性
  2. 定义BaseMvpActivity/BaseMvpFragment,实现:
    • 通过注解反射方法获取Presenter对象,免去new的过程
    • 绑定Presenter生命周期,防止内存泄露
  3. 声明注解@MvpPreImpl
    • 核心
    • 通过注解的方式获取P对象,极度的简化了代码,
    • 同时,固定P的位置,增加了代码的阅读性
目录结构图

目录结构图

案例 - 使用方法

案例方法下载Demo查看更清楚

在这贴出BaseActivity / *MainActivity(使用了MVP) / SecondActivity(未使用MVP)*的部分代码,提前了解下该套MVP库怎么达到无侵入、易理解、超容易使用

BaseActivity

public abstract class BaseActivity<V extends BaseView, P extends BasePresenter> extends BaseMvpActivity<V, P> {
    
    /* 自定义自己熟悉的BaseActivity抽象方法 */

    /* ....other code.... */
}

MainActivity

@MvpPreImpl(TestPreImpl.class)
public class MainActivity extends BaseActivity<TestContract.IView, TestContract.IPresenter> implements TestContract.IView {

    /*
        如果需要使用MVP模式,套用这三步
        标注 ---> @MvpPreImpl(PreImpl.class)
        申明 ---> BaseActivity(V,P)
        实现 ---> implements IView
     */

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getPre().apiGetUserInfo("id"); //不需要New Presenter,直接getPre()即可 **简化代码**
    }

  /* ....other code.... */
}

SecondActivity

public class SecondActivity extends BaseActivity {

    /*
        有些界面不需要使用MVP的模式,不标注@MvpPreImpl()即可,不影响其它任何操作
        这样
        界面清晰明了,没有任何冗余的代码
     */

    /* ....other code.... */
}

最后贴出案例目录结构图,通过笔者眼中的MVP,助你理解出自己的一份MVP架构

结构图

End.


发布于CSDN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AspNetForums 的汉化版和改写版,主要改写在于: 1、修改了邮件发送程序,设计了可发送需要身份验证的邮件发送组件。 2、设计了一个统一用户群组件(OneUsers.dll),只要你使用 OneUsers 的用户群(数据可以使用我们的也可以使用你们自己的,我们提供 OneUsers 的数据的 SQL 脚本),用户只要在加入本站用户群的任何一个论坛注册一次,就可以在其他论坛以同样的帐号登陆。 比如,你在 www.chinamvp.org 注册一次,那么你也可以用此帐号在 www.onebbs.net 登陆,而无需再次注册。 安装文档 1、必须安装MS SQL SERVER 2、必须安装.Net Framework + IIS 1、安装 MS SQL SERVER 论坛数据文件 首先在 查询分析器里执行 aspnetforums_oneuser1.0.sql脚本安装论坛数据 然后是 CreateDefaultData1.0.sql 安装默认数据 oneuser1.0.sql 是我们统一使用的用户群,你可以不安装,而是使用我们的默认数据,这个默认数据在我们的服务器上。 如果你是英文系统 请执行 aspnetforums_oneuser1.0forEnSqlServer.sql 和 oneuser1.0forEnSqlServer.sql 但是不能保证论坛 能够正常执行 2、设置 AspNetForums 里的web.config <add key="connectionString" value="server=localhost; User ID=sa; Password=;database=aspnetforums" /> aspnetforums数据 用户名和密码 <add key="connectionString" value="server=localhost; User ID=sa;database=OneUser" /> oneuser数据 用户名和密码,你可以删除他或者注释掉,那么就是默认使用我们服务器上的统一用户 3、设置邮件服务器 <add key="smtpServer" value="yourhost.com" /> <!-- Can specify SMTP Server to use to send out emails. Use "default" to use the default Windows 2000 SMTP Server --> <add key="ChinaASPXMailer" value="True" /> <!-- 如果你使用我们定制的邮件发送组件,请设为 True --> <add key="UserName" value="[email protected]" /> <!--ChinaASPXMailer s UserName ,For Auth mail server --> <add key="Password" value="test" /> <!--ChinaASPXMailer s Password ,For Auth mail server --> <add key="Port" value="25" /> <!-- Port for ChinaASPXMailer s prot --> <add key="FromName" value="ChinaMVP.COM" /> <!-- FromName for ChinaASPXMailer s FromName --> <!--add key="Charset" value="GB2312" /--> <!-- FromName for ChinaASPXMailer s FromName ,Default value is gb2312 --> 把以上的 yourhost.com 改成你的邮件服务器 如果需要验证,请设置 UserName,否则 删除或者注释掉 4 、设置IIS,在你的web站点里设置一个虚拟目录 其物理目录指向 AspNetForums 目录。 5、解决方案 EngineAspNetForums.sln 6、管理员帐号: user:admin pwd:admin

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值