MVC架构在Android中的体现

  • MVC概念

        MVC的全称是model(模型)-view(视图)-controller(控制器)的缩写,是一种设计典范,是一种业务逻辑、数据、界面显示分离的方法组织代码。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的做用,来控制M层和V层的通讯以此达到分离视图、显示和业务逻辑层。算法

  • MVC在Android中的体现

        在Android开发中,比较流行的开发框架模式采用的是MVC框架模式,采用MVC模式的好处是便于UI界面部分的显示和业务逻辑,数据处理分开。那么Android项目中哪些代码来充当M,V,C角色呢?数据库

        M层:适合作一些业务逻辑处理。好比在Android中数据库存取操做,网络操做,复杂的算法,耗时的任务等都在model层处理。设计模式

        V层:应用层中处理数据显示的部分。Android中xml布局能够视为V层,显示Model层的数据结果。网络

        C层:在Android中,Activity处理用户交互问题,所以能够认为Activity是控制器,Activity读取V视图层的数据(eg.读取当前EditText控件的数据),控制用户输入(eg.EditText控件数据的输入),并向Model发送数据请求(eg.发起网络请求等)。框架

举例:模块化

        如Activity持有了WeatherModel模型的对象,当用户有点击Button交互的时候,Activity做为Controller控制层读取View视图层EditTextView的数据,而后向Model模型发起数据请求,也就是调用WeatherModel对象的方法 getWeathre()方法。当Model模型处理数据结束后,经过接口OnWeatherListener通知View视图层数据处理完毕,View视图层该更新界面UI了。而后View视图层调用displayResult()方法更新UI。至此,整个MVC框架流程就在Activity中体现出来了。布局

  • MVC总结

        利用MVC设计模式,使得项目有了很好的可扩展和维护性,当须要改变UI显示的时候,无需修改Contronller(控制器)Activity的代码和Model(模型)WeatherModel模型中的业务逻辑代码,很好的将业务逻辑和界面显示分离。spa

        在Android项目中,业务逻辑,数据处理等担任了Model(模型)角色,XML界面显示等担任了View(视图)角色,Activity担任了Contronller(控制器)角色。contronller(控制器)是一个中间桥梁的做用,经过接口通讯来协同 View(视图)和Model(模型)工做,起到了二者之间的通讯做用。设计

        何时适合使用MVC设计模式?固然一个小的项目且无需频繁修改需求就不用MVC框架来设计了,那样反而以为代码过分设计,代码臃肿。通常在大的项目中,且业务逻辑处理复杂,页面显示比较多,须要模块化设计的项目使用MVC就有足够的优点了。xml

        在MVC模式中咱们发现,其实控制器Activity主要是起到解耦做用,将View视图和Model模型分离,虽然Activity起到交互做用,可是在Activity中有不少关于视图UI的显示代码,所以View视图和Activity控制器并非彻底分离的,也就是说一部分View视图和Contronller控制器Activity是绑定在一个类中的。

  • MVC的优势
  1. 耦合性低。所谓耦合性就是模块代码之间的关联程度。利用MVC框架使得View(视图)层和Model(模型)层能够很好的分离,这样就达到了解耦的目的,因此耦合性低,减小模块代码之间的相互影响。
  2. 可扩展性好。因为耦合性低,添加需求,扩展代码就能够减小修改以前的代码,下降bug的出现率。
  3. 模块职责划分明确。主要划分层M,V,C三个模块,利于代码的维护。
相关文章
相关标签/搜索