使用MVP 书写 Android
2016-03-08 16:19
381 查看
最近在网上看到很多关于MVP模式书写Android的文章,颇有想法。闲暇之余试了试,感觉确实不错,代码整洁了,心情舒畅了。
所以想写篇博客分享分享,但是鄙人资质尚浅,需站在巨人的肩膀之上
http://blog.csdn.net/lmj623565791/article/details/46596109
http://gold.xitu.io/entry/56cd79c12e958a69f944984c
很多理论上的知识请移驾上方连接处。
MVP(Model View Presenter)模式 , 分离展示层和业务逻辑层的模式,使两者独立存在 的 模式。原文
View 对应于Activity,负责View的绘制以及与用户交互
Model 依然是业务逻辑和实体模型
Presenter 负责完成View于Model间的交互
我的理解是
View 控制展示 ,通过接口把将要实现的功能抽象出来 ,然后对象的Activity和Fragment 具体实现其功能 。
例: interface AViewModel
{
void showDialog();
}
注意,这里是不能 有 事件处理(业务逻辑)的,只能有一些View的操作。事件处理(业务逻辑)应该是在 Presenter 中进行的。
Activity的小例子在最后给出
Model 数据模型 和 业务模型 等...
数据模型 实体类,也就是JavaBean
业务模型 抽象出的业务逻辑,先写一个接口 ,抽象要执行的业务逻辑(比如登录);
例: interface ADomain
{
void login();
}
Presenter 也就是控制层,业务逻辑的具体实现 。将就上面两个例子接着编...
例:
好了,基本模型就这样了,最后回到Activity
大致的思路就是这样,第一次写博客,鉴于资质太菜,不喜勿喷。
所以想写篇博客分享分享,但是鄙人资质尚浅,需站在巨人的肩膀之上
http://blog.csdn.net/lmj623565791/article/details/46596109
http://gold.xitu.io/entry/56cd79c12e958a69f944984c
很多理论上的知识请移驾上方连接处。
MVP(Model View Presenter)模式 , 分离展示层和业务逻辑层的模式,使两者独立存在 的 模式。原文
View 对应于Activity,负责View的绘制以及与用户交互
Model 依然是业务逻辑和实体模型
Presenter 负责完成View于Model间的交互
我的理解是
View 控制展示 ,通过接口把将要实现的功能抽象出来 ,然后对象的Activity和Fragment 具体实现其功能 。
例: interface AViewModel
{
void showDialog();
}
注意,这里是不能 有 事件处理(业务逻辑)的,只能有一些View的操作。事件处理(业务逻辑)应该是在 Presenter 中进行的。
Activity的小例子在最后给出
Model 数据模型 和 业务模型 等...
数据模型 实体类,也就是JavaBean
业务模型 抽象出的业务逻辑,先写一个接口 ,抽象要执行的业务逻辑(比如登录);
例: interface ADomain
{
void login();
}
Presenter 也就是控制层,业务逻辑的具体实现 。将就上面两个例子接着编...
例:
class APresenter implements ADomain { // 抽象的视图控制,Activity 或者Adapter 将实现的他 AViewModel mAViewModel; public APresenter(AViewModel l){ //通过构造方法赋值,就可以对Activity 进行控制了 mAViewModel=l; } public void login(){ //控制Activity 显示 Dialog mAViewModel.showDialog(); //TODO 执行 登录 的代码 } }
好了,基本模型就这样了,最后回到Activity
class AActivity extends Activity implements AViewModel { public void showDialog(){ //TODO 自己抽象的方法,这里仅仅只有一个,实际开发中肯定不止一个 } APresenter mPresenter @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); <pre name="code" class="java"> //这样就建立绑定,你也可以在声明变量的时候直接new (即:APresenter mPresenter = new APresenter(this);) mPresenter =new APresenter(this);}}
大致的思路就是这样,第一次写博客,鉴于资质太菜,不喜勿喷。
相关文章推荐
- Android 屏幕(View)坐标系统
- Android SharedPreferencesUtils数据保存工具类
- Android simpleadapter对象参数解释
- 从源码剖析Android中的Intent组件
- Android TextInputLayout修改提示信息文字颜色
- Android安全专项-AndBug动态调试工具
- Android 之 Edittext输入四位自动空格
- Android 快速开发系列 打造万能的ListView GridView 适配器
- Android输入的身份证号大小写通用
- Gradle 从入门到精通
- android屏幕自适应&&android 属性
- Gradle 从入门到精通
- Android 中SQLite 增删改查的方法介绍
- The project is using an unsupported version of the Android Gradle plug-in
- Android图片资源获取原则
- Android中Animation动画的介绍及用法
- Androidz中DisplayMetrics类
- 深入理解Android中的Handler异步通信机制
- 【SettingsProvider】修改系统初始化时间与日期的格式
- 【Android动画】之Tween动画 (渐变、缩放、位移、旋转)