最近在做ipad的MVC开发框架当设计接口函数时发现层与层之间的数据交互是以前没有考虑清楚的。在分层架构中要尽量减小层与层之间的耦合,层与层之间的通讯需要考虑正常数据的传输,一般采用DTO数据传输对象来实现,需要考虑业务逻辑错误,比如说:用户Session失效,用户名密码错误等,一般在通讯协议中会定义不同的错误代码表,需要考虑程序异常,在Java实现中一般采用异常处理。归纳起来在层与层之间传输的数据包括3种类型:正常返回数据/错误处理提示/程序异常。
层与层之间的通讯方式也可以分为几种:最常见的是基于方法调用,逐层进行方法调用,通过方法的返回值传递业务数据和异常。另外还可以采用基于消息的通讯方式,层与层之间采用命令(Command)方式发起请求和处理感兴趣的命令和数据。两种方式都面临处理上面的3种数据传输的问题,大家是如何来做的呢?
首先,基于命令的模式看起来对这三种数据的处理是非常容易的,命令发布者可以把这3类数据封装成统一的消息,消息订阅者只需要根据消息类型进行处理即可。而基于方法调用的模式相对来说就比较复杂一些了,在Java实现中一般采用方法返回值来处理正常数据的传输,通过异常来处理错误信息和程序异常信息。那么在ios开发中又是如何来实现的呢?
如果是基于命令模式的实现ios和java应该没有太大的区别,在方法调用的实现方式上就显得大为不同。首先从接触ios开发以来发现ios开发中很少使用异常处理,而是通过函数返回BOOL值来判断函数执行的结果。通过阅读文档发现ios提供了一种叫做“Error handling Programming”的技术来实现函数中对异常和错误的处理。总体来看在ios开发中处理层与层的数据交互方面感觉还是很困难的,可能是做java比较久的缘故吧。
总结一下目前见到的几种ios开发中实现方式:
1.看到更多的程序都是业务逻辑和显示都写在UIViewController中,通过共享变量的 方式来实现数据交互,这种模式简单适合小的项目开发。
2.稍好一点的将交互数据提取出一个单独的类,在类中持有数据和状态以及错误代 码,通过共享类变量来达到数据交互的目的。
3.将错误信息和正常数据封装在一个DTO中返回。
4.将NSError作为参数放在函数最后,通过NSError返回错误信息,也就是Error handling Programming方法。
几种方法相比较而言Error handling Programming方法更加OO一些,方法2应用更广泛一些。个人而言更推荐使用Command模式来实现层与层之间的数据交互。
分享到:
相关推荐
《合作式智能运输系统车用通信系统应用层及应用数据交互标准(第二阶段)》是针对智能交通领域的重要规范,旨在定义和规范车用通信系统中应用层的交互方式及数据格式,确保不同车辆和设备间的信息交换准确、高效、...
CSAE 157-2020 合作式智能运输系统 车用通信系统应用层及应用数据交互标准(第二阶段) 本标准是中国汽车工程学会发布的规范性技术文件,旨在推动汽车产业创新技术的加速发展和广泛应用。该标准的发布是为了提升...
在范围部分,标准明确了它适用于C-ITS中的车载通信系统,旨在规定应用层协议和数据交互的规则,确保不同设备之间的一致性和互操作性。标准引用的相关文件提供了技术背景和依据。 在术语和定义部分,标准详细阐述了C...
4. 应用数据交互:是指不同系统之间的数据交换和共享,例如车辆与基础设施之间的数据交换。 5. ITS(Intelligent Transportation System):是一种智能交通系统,旨在提高交通效率和安全性。 6. V2X(Vehicle to ...
该标准TCSAE 53-2017旨在提升车用通信系统相关产品的研发与制造水平,包括合作式智能运输系统应用层和应用数据交互的标准规范。它提供了车用通信系统在不同场景下的应用定义、基本要求、系统原理、通信方式、性能...
"弹出层2" 插件可能支持数据交互功能,这意味着弹出层之间或者弹出层与主页面可以共享数据。这可以通过JavaScript对象、事件监听、Ajax请求等方式实现,使得不同弹出层间的信息传递变得灵活且高效。 4. **插件架构...
《合作式智能运输系统 车用通信系统应用层及应用数据交互标准》(TCSAE 53-2017)是中国汽车工程学会发布的一项标准,旨在规范车用通信系统在合作式智能运输系统中的应用层设计和数据交互,以提升汽车行业在产品研发...
这篇文章的主题“wpf界面与类之间的交互”主要探讨的是如何在WPF应用中利用WCF服务进行数据通信,以及如何设计和管理类之间的交互。 首先,我们要理解WPF中的MVVM(Model-View-ViewModel)设计模式。在这个模式中,...
"合作式智能运输系统车用通信系统应用层及应用层数据交互标准" 本文将对合作式智能运输系统车用通信系统应用层及应用层数据交互标准进行详细的解析。 应用层的概念 在智能交通系统中,应用层是指车用通信系统中的...
《基于车路协同的高等级自动驾驶应用层数据交互内容》(TCSAE 158-2020)是中国汽车工程学会发布的一项团体标准,旨在规范高级别自动驾驶车辆与交通基础设施之间的数据交互,以实现更安全、高效的自动驾驶。...
《CSAE 53-2020 合作式智能运输系统 车用通信系统应用层及应用数据交互标准(第一阶段)》是中国汽车工程学会发布的一项标准,旨在推动V2X(Vehicle-to-Everything)技术在智能交通领域的应用。V2X是一种将车辆、...
高内聚意味着每个层次内部的组件有较强的关联性,而低耦合则意味着各层之间的相互依赖度较低,这样可以降低修改某一层次对其他层次的影响。 微软推荐的三层架构还包括了模型-视图-控制器(MVC)模式,其中模型代表...
"合作式智能运输系统车用通信系统应用层及应用层数据交互标准" 在本篇中,我们将详细介绍合作式智能运输系统车用通信系统应用层及应用层数据交互标准的相关知识点。 首先,让我们了解什么是合作式智能运输系统车用...
### 合作式智能运输系统车用通信系统应用层及应用数据交互标准解析 #### 一、概述 《合作式智能运输系统 车用通信系统应用层及应用数据交互标准》(T/CSAE 53-2017)是中国汽车工程学会发布的一项重要行业标准。该...
当前,随着信息技术和网络技术的飞速发展,医疗信息化建设提出了新...此外,医疗数据交互平台的成功运行,还需要各医疗机构之间以及与平台之间的良好沟通与协作,这也是平台能否成功实施并发挥预期效果的关键因素之一。
在构建一个复杂的考试系统时,数据交互是至关重要的组成部分,特别是在子模块之间。"考试系统的子模块数据交互"这一主题涉及到多个方面的技术知识,主要集中在Java编程语言和考试系统的架构设计上。以下是对这些知识...