该文首先介绍了无线城市的概念,然后提出了移动APP开发中常用的MVC架构模式,最后结合IOS客户端重庆无线城市项目“重庆城”,论述MVC架构模式在该APP开发中的具体应用。
1 “无线城市”概述
2004年7月,美国费城提出“无线费城计划”,该计划是基于WLAN(Wireless Local Area Networks)标准的无线网络。随后类似的无线城市计划开始席卷全球。2013年,中国移动TD-LTE网络达到7M/S,移动端网速的快速提升,为无线城市时代的到来提供了最重要的基础条件。当前,中国的北京、海南、广东、江西、安徽、湖北、重庆等31个省份都已经建设了类似项目。
2 MVC架构模式
IOS端“重庆城”项目涉及的功能模块较多,而传统的基于网络的应用系统中,数据库的访问、用户界面设计、业务逻辑混合在一起,这种架构模式非常不便于后期需求的调整,一旦需求有变动,会给后期维护带来很大的不便。基于分层的架构思想应运而生,MVC架构模式是一种典型代表。
MVC不是一种设计模式(Design Pattern),而是一种架构模式(Architectural Pattern),用以描述应用程序的结构以及结构中各部分的职责和交互方式。MVC是Model View Controller的简称,包括模型(Model)、视图(View)、控制器(Controller)这3个层次,它是一种广泛应用于移动端系统的架构模式。
2.1 MVC三层架构
MVC模式能够将模型层(Model)和视图层(View)实现代码分离,控制器(Controller)则是保证模型层和视图层的同步,模型层如果有改变,视图层也会保持更新。
模型(Model):模型层用于封装与业务逻辑相关的数据以及对数据的处理方法,一般来说模型对象可以读取数据库中的数据,模型层不关心它会如何被显示。
视图(View):视图层主要基于界面展示相关信息,视图可以有多个,控制器决定使用哪个视图,视图一般是根据数据模型创建。
控制器(Controller):它是应用程序中处理用户交互的,用户点击视图上的控件,控制器能接收到基于HTTP协议的GET、POST请求。
2.2 MVC原理
MVC(Model-View-Controller)架构模式的原理并不复杂,应用程序必须能区分相应的功能。
MVC架构模式对于小型甚至中型的应用程序并不合适,会带来很大的?~外工作量,增加应用的复杂性。对于存在大量界面、逻辑复杂的大型应用程序,MVC架构模式虽然会增加一些工作量,但也能够增加系统的稳定性,长远来看,会提升系统的运行效率。
3 MVC架构模式的代码实现
移动端”重庆城”项目,因其涉及的界面较多,传统的架构模式不能满足需求,采用了MVC三层架构。项目上线后,Android市场和App Store里该应用累计下载量达到200余万次,用户体验良好,后台运行稳定,受到广大重庆市民的欢迎。
4 总结
相比传统架构模式,MVC架构模式有不少优点。其不足体现在以下几个方面,后期有待优化。
1) 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
2)视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。
4) 目前,一般高级的界面工具或构造器不支持MVC模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。