移动App设计之分层架构+MVC

摘要:
场景分析:我们知道移动设备的大多数应用程序都与网络有关,也就是说,我在移动设备上看到的数据。通常,它们是从服务器上“拉”出来的,并显示在我们的移动设备上(iosandroiud、wpohone等)。然后我们分析“拉”的过程,以及拉什么样的数据?去哪里拉?如何处理提取的数据?从编程(开发)的角度来看,我们定义了什么实体(业务实体)、发送请求和解析数据。当然,这只是一个一般的过程。但在软件架构设计方面,定义实体

场景分析:我们知道,一个移动设备的应用大多与网络有关,也就是说,我在移动设备上看到的数据,一般都是从Server上”拉“过来,显示在我们的移动设备(ios androiud、wpohone等)上。那我们就这个”拉“的过程分析,拉什么样的数据?去哪里拉?拉过来的数据怎么处理?用编程(开发)的思维看,就是定义什么实体(业务实体)、发送请求、解析数据。当然这也只是大体的过程。但从软件架构设计上讲,定义实体、发送请求、解析数据都是具有单独意义的模块。那我们怎么处理这些模块呢?

场景应用:sina weibo。定义timeline、user等实体;请求最新的微薄等;处理(主要是解析)请求的数据;最后是显示在移动设备的UI上。


回到前面的问题,我们该如何处理这个具有单独意义的模块呢?让我们借鉴下web的设计:

在传统的web系统设计中,数据库的访问、业务逻辑和UI设计混淆在一起,这样虽然直观,但一旦需求有所改动,对日后的维护带来很多不便。为了解决这个问题,人们提出了分层的架构思想。

分层架构模式:

  "将解决方案的组件分隔到不同的层中,每一层中的组件应保持内聚性,各层保持松散耦合。" 分层模式是最常见的一种架构模式。在web应用系统开发中,比较流行三层架构(表现层、业务逻辑层、数据访问层),当然我们细分,也可以分层多层(我记得那时候我分七层)。

  现时隔多年,如今反观移动App架构设计(对大程序而言,有人说移动设备很难开发大的系统,我不是完全赞同此说法),分层架构的设计仍然少不了。远的不说,就说IOS App的开发,苹果的设计是基于MVC的设计模式。

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范。MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

我们细看下,其实他也是分层(三层)架构的。也就是说,它的设计思想也是分层。

既然MVC也是分层,那何不把App整体设计成分层架构,MVC保持原来的设计不变。将一些具有单独意义解决问题的模块分层,让他们服务于MVC呢?

那我可以分享(只是分享)一下我一个App的架构。如下:

移动App设计之分层架构+MVC第1张

免责声明:文章转载自《移动App设计之分层架构+MVC》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇zookeeper:2MS SQL Server:分区表、分区索引详解下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

IOS越狱开发之开机启动APP

越狱环境搭建移步这里:http://www.cnblogs.com/ligun123/archive/2012/11/14/2770350.html 目前就我知道的开机启动有两种方式(仅限于越狱机器): 1、IOS设备开机后会自动加载LaunchDemos目录下面的Plist,这些Plist里面记录了相关的app信息,这些app都会在IOS开机后自动加载。...

VMware Workstation 15 安装教程

注:操作系统必须是64位    软件:360软件管家获取 1、运行下载完成的Vmware Workstation虚拟机软件包。   虚拟机软件的安装向导初始界面 2、在虚拟机软件的安装向导界面单击“下一步”。   虚拟机的安装向导 3、在用户许可协议界面选中“我接受许可协议中的条款”复选框,然后单击“下一步”。   接受许可条款 4、选择虚拟机软件的安装位...

基于React Native的58 APP开发实践

React Native在iOS界早就炒的火热了,随着2015年底Android端推出后,一套代码能运行于双平台上,真正拥有了Hybrid框架的所有优势。再加上Native的优秀性能,让越来越多的公司在实际项目中一探究竟。58同城APP发布模块年代久远,一直计划进行重构以适应日益苛刻的用户体验,这个需求与我们在React Native上一探究竟的意愿一碰撞...

用SourceForge管理开源项目

SourceForge.net是开源软件开发者进行开发管理的集中式场所,也是全球最大开源软件开发平台和仓库。 Sourceforge为开源软件开发测试提供了高性能的免费空间: 1、空间稳定性非常高,无广告,速度快,无限空间容量以及流量。 2、支持PHP、Perl、Python、Ruby、shell等多种脚本,支持FTP上传。 3、可以绑定自己的顶级域名,...

Android Fragment使用(二) 嵌套Fragments (Nested Fragments) 的使用及常见错误

嵌套Fragment的使用及常见错误 嵌套Fragments (Nested Fragments), 是在Fragment内部又添加Fragment. 使用时, 主要要依靠宿主Fragment的 getChildFragmentManager() 来获取FragmentManger. 虽然看起来和在activity中添加fragment差不多, 但因为f...

Xilinx ISE 14.7 安装教程

在软件安装之前,得准备好软件安装包,可从Xilinx官网上下载: http://china.xilinx.com/support/download/index.html/content/xilinx/zh/downloadNav/design-tools.html。 下载好的软件如下所示: 接下来开始安装ISE14.7软件: (1)在安装包目录下双...