Android之MVC模式的使用
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。
Model 层处理数据,业务逻辑等;
View 层处理界面的显示结果;
Controller层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。
public class MainActivity extends Activity implements Implement,OnClickListener {
private TextView tv_view;
private MainModel mModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.th);
initView();
}
private void initView() {
// TODO Auto-generated method stub
mModel = new MainModel();
tv_view = (TextView) this.findViewById(R.id.tv_view);
findViewById(R.id.btn).setOnClickListener(this);
findViewById(R.id.btn1).setOnClickListener(this);
}
@Override
public void loadData() {
mModel.loadData(tv_view);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn:
loadData();
break;
case R.id.btn1:
httpData();
break;
default:
break;
}
}
@SuppressLint("HandlerLeak") @Override
public void httpData() {
Object data=mModel.httpData();
if(data!=null)
{
tv_view.setText(data.toString());
}else{
onError();
}
}
@Override
public void onError() {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "加载数据失败",Toast.LENGTH_LONG).show();
}
}
public class MainModel {
public void loadData(TextView tv_view) {
tv_view.setText("MVC模式在Android中的应用,Model获取数据");
}
/***
* 网络请求
*
* @return 返回请求数据
*/
public Object httpData() {
return "网络请求返回数据";
}
}
MVC的优点:
1.耦合性低。所谓耦合性就是模块代码之间的关联程度。利用MVC框架使得View(视图)层和Model(模型)层可以很好的分离,这样就达到了解耦的目的,所以耦合性低,减少模块代码之间的相互影响。
2.可扩展性好。由于耦合性低,添加需求,扩展代码就可以减少修改之前的代码,降低bug的出现率。
3.模块职责划分明确。主要划分层M,V,C三个模块,利于代码的维护。
源码点击下载:https://github.com/DickyQie/android-development-model
Android之MVC模式的使用的更多相关文章
- Android编程: MVC模式、应用的生命周期
学习内容:Android的应用剖析.MVC模式.应用的生命周期 ====Android的应用剖析==== 一个Android应用程序会使用如下组件: Android Activities 界面 A ...
- Android入门:MVC模式(中)
MVC 模式的最基本概念是分层设计,把我们的代码基于 View(视图).Model(模型).Controller(控制器)进行分类封装,这样做的目的是为了清晰结构,使代码更易维护和扩展. 在上一篇文章 ...
- Android之MVC模式
MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器.一个逻辑模型可以对于多种视图模型,比如一批统计数据 你可以分别用柱状图.饼图来表示.一种视图模型也 ...
- Android 设计模式之MVC模式
说到Android设计模式的MVC模式,估计很多人都是比较熟悉了,这里深入了解一下MVC到底是怎么回事,以ListView为例子讲解. 一.深入理解MVC概念 MVC即Model-View-Contr ...
- Android进阶笔记07:Android之MVC 理解
1. 为什么需要MVC ? 软件中最核心的,最基本的东西是什么? 答:是的,是数据.我们写的所有代码,都是围绕数据的. 围绕着数据的产生.修改等变化,出现了业务逻辑. 围绕着数 ...
- Android之MVP模式实现登录和网络数据加载
MVP简介 相信大家对 MVC 都是比较熟悉了:M-Model-模型.V-View-视图.C-Controller-控制器,MVP作为MVC的演化版本,也是作为用户界面(用户层)的实现模式,那么类似的 ...
- Android和MVC
Activity和Android的mvc模式 http://blog.csdn.net/dengshengjin2234/article/details/8502097 //android涉及到的 ...
- Android 腾讯入门教程( 智能手表UI设计 和 MVC模式 )
*****注意到mvc 在android 中是如何进行分层分域执行各自的功能.**** 官方推荐的按钮尺寸是48像素 前端之Android入门(1):环境配置 前端之Android入门(2):程序目录 ...
- MVC模式与Android
MVC模式是软件工程中的一种软件架构,“Model-View-Controller”的缩写,中文翻译为“模型-视图-控制器”. MVC模式将一个交互式应用程序分为3各组件: 1.Model(模型):业 ...
随机推荐
- python 简单的爬虫
import urllib.request import re import ssl # 处理https请求 import time import os # 创建目录用 def get_html(ur ...
- tortoisegit 代码的回滚方式 --两种
TortoiseGit有两种回滚代码方式, 一种是导出指定版本代码为zip格式,不影响源代码:另一种是直接在源代码上回滚, 指定版本之后写的代码都会被删除.下面分别介绍这两种方法: 首先进入版本日志对 ...
- python 文件操作 练习:把一个目录下的所有文件名,打印一下,不要包含后缀名
#coding=utf-8 import osos.chdir('d:\\test2')file_list=os.listdir('.')print "file_list:",fi ...
- 2017-2018-2 20165207 实验四《Android开发基础》实验报告
2017-2018-2 20165207 实验四<Android开发基础>实验报告 检查点1 安装测试Android Studio: 安装Android Studio 安装过程比较艰难,一 ...
- MyEclipse 相关设置
1. MyElipse复制项目后,修改项目的发布名称的方式.右击你的项目,选择 properties -- > MyElipse -- > web,然后修改名称即可. 2. IDE查看源代 ...
- 如何使用Unity制作虚拟导览(一)
https://www.cnblogs.com/yangyisen/p/5108289.html Unity用来制作游戏已经是目前市场上的一个发展趋势,而且有越来越多的公司与开发者不断的加入,那么Un ...
- Python入门之安装numpy和pandas
最近要对一系列数据做同比比较,需要用到numpy和pandas来计算,不过使用python安装numpy和pandas因为linux环境没有外网遇到了很多问题就记下来了. 首要条件,python版本必 ...
- Redis 如何保持和MySQL数据一致【二】
需求起因 在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节.所以,就需要使用redis做一个缓冲操作,让请求先访问到redis,而不是直接访问MySQL等数据库. 这个业务场景,主要 ...
- 安装VS提示系统找不到指定路径
解决办法:删除C:\ProgramData\Package Cache快捷方式
- opencv-python 学习初探2 去图片水印
我要去除的水印是红色的.网上已经有很不错的帖子,我就不贴自己的代码了.留个指路自己以后查资料. 大概的思路就是用颜色拾取工具,拾取水印颜色,分析了图片,找到规律.比如我的图片水印是红色的,红色差不多g ...