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三个模块,利于代码的维护。

源码点击下载

相关推荐