移动APP架构模式

移动APP架构模式

本文主要总结了几种常用的架构模式, 基本是层层递进的, 转载请注名出处: http://blog.csdn.net/uxyheaven

在一个app的不同生命周期采用不同的架构模式可以有效的提高开发效率

基本的MVC

移动app一般都是采用经典的mvc架构

层次 作用 设计原则
模型层(model) 封装了应用的一系列数据, 并定义了操作, 处理这些数据的逻辑和计算规则。 通过C:Notification,KVO对控制器进行反馈
视图层(view) 视图对象是一个应用中, 用户可以看到的对象. 视图对象知道如何绘制自己, 也能够响应用户的操作. 视图对象的主要目的之一是将应用模型对象中的数据显示出来, 并允许用户编辑该数据 视图通过不能直接操作模型层, 通过target-action, delegate, dataSource和控制器进行反馈
控制器层(controller) 控制器层是在视图层和若干个模型层的中间人 c可以直接操作模型层和视图层

总结:C对M:APIC对V:OutletV对C:Target-action, Delegate,DatasourceM对C:Notification,KVO

MVC的改进版 MVVM

MVVM是在MVC的基础上多了一个View Model: 表示逻辑, 将 model 的数据转换为 view 可以呈现的东西.

三层架构

我们在来看一下经典的三层架构

从上至下为

  • 表示层(UI)
  • 业务逻辑层或称为领域层(BLL)
  • 数据访问层(DAL)
层次 作用 设计原则
表示层(UI) 向用户展现特定业务数据,采集用户的输入信息和操作 用户至上,兼顾简洁;不包含任何业务相关的逻辑处理
业务逻辑层(BLL) 从DAL中获取数据, 在UI显示; 从UI中获取用户指令和数据, 执行业务逻辑或通过DAL写入数据源 作为U层与D层的桥梁,目的在于展现清晰的函数结构, 只负责数据处理传递, 不涉及SQL语句和ADO.NET
数据访问层(DAL) 直接操作数据库,针对数据的增添 删除 修改 查找; 具体为业务逻辑层或表示层提供数据服务。 专门操作数据库, 不考虑数据合法性. 数据库错误返回-1, 逻辑错误返回0, 并告知错误原因, 成功返回1

然后呢,我们现在的架构则是

四层架构

在三层架构的基础上多了业务规则层, 常的三层是把业务逻辑和业务规则合并为一个层,统称为业务层.业务规则层的提出,既可以及时处理用户输入的不合法信息, 又可以及时处理数据库错误, 增大了业务逻辑层的结构清晰度, 让业务逻辑人员专心致志做逻辑

从上至下为

  • 表示层
  • 业务规则层
  • 业务逻辑层或称为领域层
  • 数据访问层
层次 作用 设计原则
业务规则层(ECL) 对于UI层传下来的参数来说,检查合法性。 用户至上,兼顾简洁;不包含任何业务相关的逻辑处理

五层架构

一般情况下, 我们的业务逻辑放在中间层, 那么对内部的这些大量种类繁多,使用方法也各异的不同的类的调用任务,就完全落到了表示层. 这样势必会增加表示层的代码量, 将表示层的任务复杂化, 和表示层只负责接受用户的输入并返回结果的任务不太相称, 并增加了层与层之间的耦合程度. 因此呢,我们需要增加接口去去统一的管理这些业务, 是设计模式中Facade模式的思想.

从上至下为

  • 表示层
  • 业务外观层
  • 业务规则层
  • 业务逻辑层或称为领域层
  • 数据访问层
层次 作用 设计原则
业务外观层 为负责子系统中的一组接口提供一个一致而且简单的接口。  

新秀VIPER

viper这里不多说了,请想了解的自行搜索

时间: 2024-11-08 23:49:40

移动APP架构模式的相关文章

Android APP架构心得

前言 从JavaEE转到Android开发也2年多了,开发的项目也有4,5个了(公司项目),其中有3个项目前期都是自己独立开发,从一开始的毫无架构到现在对如何架构也有一点心得,所以在此分享出来,大家一起交流 什么是架构 在我看来,软件架构绝对不只是框架的堆砌,看我看来,架构是为了方便软件维护.扩展.安全性.切入性(我也不知道有没有人提出过这个关键字,因为的确很少看见,简单来说我这里说的切入性就是指一个以前没有接触过这个项目的人,能快速加入到这个项目中,对项目进行维护.修改和扩展) 维护性 一个好

Hybrid APP 架构设计思路

关于Hybrid模式开发app的好处,网络上已有很多文章阐述了,这里不展开. 本文将从以下几个方面阐述Hybrid app架构设计的一些经验和思考. 原文及讨论请到 github issue 通讯 作为一种跨语言开发模式,通讯层是Hybrid架构首先应该考虑和设计的,往后所有的逻辑都是基于通讯层展开. Native(以Android为例)和H5通讯,基本原理: Android调用H5:通过webview类的loadUrl方法可以直接执行js代码,类似浏览器地址栏输入一段js一样的效果 webvi

app架构学习之MVP

App有一个好的架构,它可以带来如下的好处:容易扩展:容易维护.如果一个App没有一个好的架构,那么,耦合的代码会到处出现.没有一个架构,那么,代码会是各种混乱,我深有体会. 混乱,看起来问题不大,对于小规模的app,因为,我始终还是可以花时间读懂它.但是,随着app的功能越来越多,那么,你每次添加一个功能或者修改一个功能的时候,你会发现:1.你做的功能和之前做的功能,有重复代码.2.你难以快速完好,正确的修改一个功能,因为代码过于耦合,因为代码层次不清楚. 总之,过去的经验告诉我,要对一个Ap

最佳App开发模式 – 快速开发,极致体验【上海站】

活动概况 时间:2015年03月14日13:30-17:00 地点:上海市金沙江路3131号三楼多功能厅 主办:APICloud.Ping++.云知声.TopGeek 网址:www.apicloud.com 费用:免费 *场地届时会提供30张免费停车券,先到先得 活动背景 对于创业团队和开发者来说,如何快速布局移动端.占领移动市场,时间和成本都是必须考虑的因素:如何用“模版”的方式快速创建 App框架以及内容页面,像堆乐高积木一样快速完成App开发,实现成本最小化.效率最大化? 2015年的春节

移动App架构设计

移动App架构设计 本文主要总结了几种经常使用的架构模式, 基本是层层递进的转载请注名出处 http://blog.csdn.net/uxyheaven, 良好的排版在https://github.com/uxyheaven/阅读 假设认为本文不错, 请在csdn给个顶, github给个star. Native app的开发相比传统的项目迭代周期要短非常多, 需求的变化也频繁一些, 在开发的不同生命周期里採用不同的架构模式能够有效的节约开发时间, 提高开发效率, 这篇文章介绍几种经常使用的架构

Hybrid APP架构设计

通讯 作为一种跨语言开发模式,通讯层是Hybrid架构首先应该考虑和设计的,往后所有的逻辑都是基于通讯层展开. Native(以Android为例)和H5通讯,基本原理: Android调用H5:通过webview类的 loadUrl 方法可以直接执行js代码,类似浏览器地址栏输入一段js一样的效果 webview.loadUrl("javascript: alert('hello world')"); H5调用Android:webview可以拦截H5发起的任意url请求,webvi

mvp架构模式

今天是国庆节,祝大家节日快乐,愿祖国越发繁荣昌盛.假期程序员也不能偷懒,更新一些博文吧. 看到封面图片喜欢NBA的人可能很容易就想到了最有价值球员.但是此mvp非彼MVP,此mvp指的是现在Android开发中比较常见的一种软件架构模式.mvp架构模式是Google官方推荐的架构模式,特别是近年来的新项目,mvp+retrofit+rxjava+dragger2配合使用已经在引领程序界的潮流了,在github上可以轻易的搜到一大堆这样的开源项目.前端时间笔者也在公司的一个sdk上进行了尝试,在此

【转载】安卓APP架构

注:本篇博文转载于 http://my.oschina.net/mengshuai/blog/541314?fromerr=z8tDxWUH 本文介绍了文章作者从事了几年android应用的开发,经历2次架构变革,第一次集成了RxJava第二次集成了MVP,并将RxJava与MVP完美结合,实现了低耦合,代码简单,测试方便的架构. 其实我们在开发中也遇到过,Android入门门槛较低,如果前期对APP规划不清晰,Coder们对未来变化把握不准,技术架构经验不够强大,最终导致就是一个Activit

最佳App开发模式-开发高效,测试、推送一站搞定【广州站】

活动概况时间:2015年03月28日13:00-17:00 地点:广州贝塔咖啡(新港中路TIT创意园内创意西路07号楼) 主办:APICloud.个推.Testin 网址:www.apicloud.com 费用:免费 活动背景 对于创业团队和开发者来说,如何快速布局移动端.占领移动市场,时间和成本都是必须考虑的因素.如何用“模版”的方式快速创建 App框架以及内容页面,像堆乐高积木一样快速完成App开发,实现成本最小化.效率最大化?怎样拥有超强能力和精力对应用程序进行完善的测试?应用上线后又如何