我对于这点知识很模糊,很混乱,这里只是记录我能够理解的MVC。
MVC概念
MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。
实现原理:数据模型M(Model)存放数据,利用控制器C(Controller)将数据显示在视图V(View)上
M层:适合做一些业务逻辑处理,比如数据库存取操作,网络操作,复杂的算法,耗时的任务等都在model层处理。
V层:应用层中处理数据显示的部分,XML布局可以视为V层,显示Model层的数据结果。
C层:在Android中,Activity处理用户交互问题,因此可以认为Activity是控制器。
实例说明:http://cinderella7.blog.51cto.com/7607653/1281696
android中的AdapterView控件的使用很容易理解MVC。
<span style="white-space:pre"> </span>private Button button_calc;
<span style="white-space:pre"> </span>private EditText field_height;
<span style="white-space:pre"> </span>private EditText field_weight;
<span style="white-space:pre"> </span>private TextView view_result;
<span style="white-space:pre"> </span>private TextView view_suggest;
<span style="white-space:pre"> </span>// 定义
<span style="white-space:pre"> </span>private void findViews() {
<span style="white-space:pre"> </span>button_calc = (Button) findViewById(R.id.submit);
<span style="white-space:pre"> </span>field_height = (EditText) findViewById(R.id.height);
<span style="white-space:pre"> </span>field_weight = (EditText) findViewById(R.id.weight);
<span style="white-space:pre"> </span>view_result = (TextView) findViewById(R.id.result);
<span style="white-space:pre"> </span>view_suggest = (TextView) findViewById(R.id.suggest);
<span style="white-space:pre"> </span>}
Step2:Controller
private void setListensers() {
<span style="white-space:pre"> </span>button_calc.setOnClickListener(calcBMI);
}
Step3:Model
把数据库的操作全部独立成几个类,这个时候只需要访问对应的方法就可以实现操作数据的功能
public void onCreate(Bundle savedInstanceState) {
<span style="white-space:pre"> </span>super.onCreate(savedInstanceState);
<span style="white-space:pre"> </span>setContentView(R.layout.main);
<span style="white-space:pre"> </span>findViews();
<span style="white-space:pre"> </span>setListensers();
}
这是我暂时理解的意思