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

  • 相关阅读:
    【笔记】信息熵以及模拟使用信息熵来进行划分
    【笔记】决策树的基本思想及简单操作
    【笔记】SVM思想解决回归问题
    【笔记】核函数
    【笔记】sklearn中的SVM以及使用多项式特征以及核函数
    【笔记】浅谈支持向量机(SVM)
    灵雀云:etcd 集群运维实践
    灵雀云Kube-OVN进入CNCF沙箱,成为CNCF首个容器网络项目
    几张图解释明白 Kubernetes Ingress
    重大升级!灵雀云发布全栈云原生开放平台ACP 3.0
  • 原文地址:https://www.cnblogs.com/zhangqie/p/6365862.html
Copyright © 2011-2022 走看看