Android之MVC模式的使用

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

Model 层处理数据,业务逻辑等;

View 层处理界面的显示结果;

Controller层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。

案例:

Java代码
  1. public class MainActivity extends Activity implements Implement,OnClickListener {  
  2.     private TextView tv_view;  
  3.     private MainModel mModel;  
  4.       
  5.     @Override  
  6.     protected void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.th);  
  9.         initView();  
  10.     }  
  11.     private void initView() {  
  12.         // TODO Auto-generated method stub  
  13.         mModel = new MainModel();  
  14.         tv_view = (TextView) this.findViewById(R.id.tv_view);  
  15.         findViewById(R.id.btn).setOnClickListener(this);  
  16.         findViewById(R.id.btn1).setOnClickListener(this);  
  17.     }  
  18.   
  19.     @Override  
  20.     public void loadData() {  
  21.         mModel.loadData(tv_view);  
  22.     }  
  23.     @Override  
  24.     public void onClick(View v) {  
  25.         switch (v.getId()) {  
  26.         case R.id.btn:  
  27.             loadData();  
  28.             break;  
  29.         case R.id.btn1:  
  30.             httpData();  
  31.             break;  
  32.         default:  
  33.             break;  
  34.         }  
  35.     }  
  36.     @SuppressLint("HandlerLeak"@Override  
  37.     public void httpData() {  
  38.           
  39.         Object data=mModel.httpData();  
  40.         if(data!=null)  
  41.         {  
  42.             tv_view.setText(data.toString());  
  43.         }else{  
  44.             onError();  
  45.         }  
  46.     }  
  47.       
  48.       
  49.     @Override  
  50.     public void onError() {  
  51.         // TODO Auto-generated method stub  
  52.         Toast.makeText(getApplicationContext(), "加载数据失败",Toast.LENGTH_LONG).show();  
  53.     }  
  54.       
  55.   
  56. }  
Java代码
  1. public class MainModel {  
  2.   
  3.     public void loadData(TextView tv_view) {  
  4.         tv_view.setText("MVC模式在Android中的应用,Model获取数据");  
  5.     }  
  6.   
  7.     /*** 
  8.      * 网络请求 
  9.      *  
  10.      * @return 返回请求数据 
  11.      */  
  12.     public Object httpData() {  
  13.         return "网络请求返回数据";  
  14.     }  
  15. }  

MVC的优点:

1.耦合性低。所谓耦合性就是模块代码之间的关联程度。利用MVC框架使得View(视图)层和Model(模型)层可以很好的分离,这样就达到了解耦的目的,所以耦合性低,减少模块代码之间的相互影响。

2.可扩展性好。由于耦合性低,添加需求,扩展代码就可以减少修改之前的代码,降低bug的出现率。

3.模块职责划分明确。主要划分层M,V,C三个模块,利于代码的维护。

源码点击下载

猜你喜欢

转载自zhangqie.iteye.com/blog/2366085
今日推荐