MVC个人理解

来源:互联网 发布:我国加工贸易知乎 编辑:程序博客网 时间:2024/06/06 10:43
在学习过程中我们会遇到mvc框架,很多人把MVC当作一种设计模式.其实不然,MVC我们可以拆分来看,首先,M:Model,模特即我们常用的数据模型, 一般来说我们用它表示数据.
然后是V:View--->即视图,或者可以说是界面,用来承载我们的数据.最后的C:controller--->控制器,用来协调数据和视图之间的关系的,一般来说数据需要绑定到视图上.
区分框架和设计模式主要在于看它的作用.对于框架来说,我们一般是对其进行代码的复用,提高了代码的简洁程度, 同时也让维护变得简单,同时也降低了各部分之间的耦合度,降低耦合度也是给代码维护提供了便利,很多时候我们不用更改很多段重复的代码,只需要在抽取的根代码段处修改即可.对于设计模式来说,更多的是侧重于对于设计的复用,例如:单例设计模式,工厂设计模式....对于单例设计模式,通常情况下,我们是私有化其构造方法,自己创建一个实例,对外提供公共的访问方式,这样的话其他类就无法创建本类实例,在内存中也就只存在一个当前类的实例,这种设计模式降低了资源的消耗,同时也减少了BUG的出现,例如在同一时间,系统中只能存在一个实例,如果存在两个就存在浪费的问题,或者存在两个相同实例但是功能不同,又与实际相悖,由此可以看出,设计模式侧重的是对于设计的复用,它没有告诉我们代码具体怎么写,但是将如何把一个类单例化的流程告诉了我们,通过这个流程我们就可以得到一个单例化的类。
框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。
在实际使用中,MVC模式一般来说需要有数据源,必须有显示View,还需要有一个控制器将数据和视图绑定,举个简单的例子:RecyclerView.在使用RecyclerView时,我们需要有每一个条目的视图,对于每一个Item,我们都需要为其提供相应的视图布局文件,这里的布局文件对应的就是我们的View:
  View view = LayoutInflater.from(context).inflate(R.layout.item_second_category, parent, false);
或者用 View view =View.inflate(context, R.layout.item_recommend_brand, null);
通过上面的代码,我们将布局文件通过打气筒将其填充成一个View,在根据我们的数据模型Model(一般是List集合),把数据填充到视图中:
  BrandCategoryBean.CategoryBean categoryBean = currentList.get(position);
        ViewHolder viewHolder = (ViewHolder) holder;
        viewHolder.tvName.setText(categoryBean.name);

上面的两个过程都是在RecyclerView的适配器中完成的,这里的适配器就是我们的Controller了.

当然,这上面只是适配器模式而已,但是从中我们也不难看出MVC框架的影子,通过代码抽取,将数据获取/视图创建分开,再由controller统一管理绑定,这种思想就是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

0 0
原创粉丝点击