博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android之MVC模式的使用
阅读量:5296 次
发布时间:2019-06-14

本文共 2077 字,大约阅读时间需要 6 分钟。

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://www.cnblogs.com/zhangqie/p/6365862.html

你可能感兴趣的文章
Delphi中ListView类的用法
查看>>
博客第一弹—聊聊HTML的那些事
查看>>
Python Web框架Django (零)
查看>>
多米诺骨牌
查看>>
Linq 学习(1) Group & Join--网摘
查看>>
asp.net 调用前台JS调用后台,后台掉前台JS
查看>>
Attribute(特性)与AOP
查看>>
第三次作业
查看>>
苹果手表:大方向和谷歌一样,硬件分道扬镳
查看>>
Competing Consumers Pattern (竞争消费者模式)
查看>>
HDUOJ ------1398
查看>>
cf--------(div1)1A. Theatre Square
查看>>
Android面试收集录15 Android Bitmap压缩策略
查看>>
PHP魔术方法之__call与__callStatic方法
查看>>
ubuntu 安装后的配置
查看>>
VSCODE更改文件时,提示:EACCES: permission denied的解决办法(mac电脑系统)
查看>>
web前端之路,js的一些好书(摘自聂微东 )
查看>>
【模板】对拍程序
查看>>
Pycharm安装Markdown插件
查看>>
【转】redo与undo
查看>>