移动APP的基本框架
来源:互联网 发布:version for mac 破解 编辑:程序博客网 时间:2024/05/17 02:36
移动App架构设计
本文主要总结了几种常用的架构模式, 基本是层层递进的转载请注名出处 http://blog.csdn.net/uxyheaven, 良好的排版在https://github.com/uxyheaven/阅读
如果觉得本文不错, 请在csdn给个顶, github给个star.
Native app的开发相比传统的项目迭代周期要短很多, 需求的变化也频繁一些, 在开发的不同生命周期里采用不同的架构模式可以有效的节约开发时间, 提高开发效率, 这篇文章介绍几种常用的架构模式:
表现层
基本的MVC
移动app一般都是采用经典的mvc框架
总结:C对M:APIC对V:OutletV对C:Target-action, Delegate,DatasourceM对C:Notification,KVO
MVC的改进版 MVVM
MVVM是在MVC的基础上多了一个View Model: 表示逻辑, 将 model 的数据转换为 view 可以呈现的东西. 适合大量展示类的App
HMVC
Hierarchical MVC, 把客户端应用程序分解为有层次的父子关系的MVC, 反复应用这个模式, 形成结构化的客户端架构. 适合重型B/S架构的WebApp.
一个MVC模块由应用程序的一个模块抽象而成. 其中很重要的一个概念就是 Parent MVC , 它可以对应界面上的实体, 也可以是一个抽象的对象. 设想一个app 有标签栏, 工具栏, 导航栏, 主工作区, 对应到HMVC上就是这个app最底部的标签栏 是 Layer1, Layer2 导航栏,主要工作区, 工具栏. 如果觉得 Layer2 太复杂可以吧主要工作区放到 Layer3, 依次类推.
Controller 是功能模块的总控室, 它负责和子Controller或父Controller通信,并通知它的 View 处理改变界面显示, Model 处理一些业务逻辑或数据库访问操作. 如才的例子里, 点击了工具栏里的一个按钮, 工具栏的Controller 响应这个event, 发现是要切换主工作区, 工具栏做不了,就传递他的父Controller处理(如果父Controller也处理不了, 就继续往上传递)然后标签栏的Controller处理切换主工作区.
优点:
- 把程序分成了几个部分, 降低了依赖性
- 支持鼓励重用代码, 组件或者模块。
- 在今后的维护中, 提高了可扩展性。
分层设计
三层架构
我们在来看一下经典的三层架构
从上至下为
- 表示层(UI)
- 业务逻辑层或称为领域层(BLL)
- 数据访问层(DAL)
然后呢,我们现在的架构则是
四层架构
在三层架构的基础上多了业务规则层, 通常的三层是把业务逻辑和业务规则合并为一个层,统称为业务层.业务规则层的提出,既可以及时处理用户输入的不合法信息, 又可以及时处理数据库错误, 增大了业务逻辑层的结构清晰度, 让业务逻辑人员专心致志做逻辑
从上至下为
- 表示层
- 业务规则层
- 业务逻辑层或称为领域层
- 数据访问层
引入service层
引入service层的架构和普通的分层架构的不同是: service层内部有数据, 可以单独运行.
从上至下为
- 表现层
- 服务层(service)
- 数据访问层
- 业务逻辑层
新秀VIPER
viper这里不多说了,请想了解的自行搜索
- 移动APP的基本框架
- 移动APP的, web 开发框架
- 移动端app开发,框架的选择。
- 几款开源的hybird移动app框架分析
- 移动开发APP的开发框架
- H5 移动APP 框架
- HTML5移动开发的10大移动APP开发框架
- 7个HTML5移动APP开发框架_优秀的Html5移动app开发框架
- 7个HTML5移动APP开发框架_优秀的Html5移动app开发框架
- APP 基本框架设计
- 设计一款好的移动App,有哪些基本规则?
- 设计一款好的移动App,有哪些基本规则?
- 设计一款好的移动App,有哪些基本规则?
- 基于Html5的移动端APP开发框架
- 9 个用于移动APP开发的顶级 JavaScript 框架
- 移动应用框架 ionic2 自学须知的基本知识点
- 用于HTML5移动开发的几大移动APP开发框架
- 用于HTML5移动开发的10大移动APP开发框架
- PHP使用udp模拟http请求实现DDOS攻击
- iOS的分享功能
- 黑马程序员——IO流
- 欢迎使用CSDN-markdown编辑器
- iOS---把字符串分割成数组
- 移动APP的基本框架
- libevent callback event=EV_ET
- linux使用FIO测试磁盘的iops
- 杭电1420 Prepared for New Acmer
- UITextView解析
- iOS标准时间与时间戳相互转换
- Asp.net或C#使用word模板生成替换后的Word和pdf文档-总结
- C#常用字符串加密解密方法封装代码
- Java中常用字符串方法总结