zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    hdu 4521 小明系列问题——小明序列(线段树 or DP)
    hdu 1115 Lifting the Stone
    hdu 5476 Explore Track of Point(2015上海网络赛)
    Codeforces 527C Glass Carving
    hdu 4414 Finding crosses
    LA 5135 Mining Your Own Business
    uva 11324 The Largest Clique
    hdu 4288 Coder
    PowerShell随笔3 ---别名
    PowerShell随笔2---初始命令
  • 原文地址:https://www.cnblogs.com/zhangqie/p/6365862.html
Copyright © 2011-2022 走看看