在确立了平台的基本特性之后,就开始具体的设计、开发工作了。当时,摆在我们面前的第一个问题就是:用什么东西来放展示层的扁平化的数据?如果是结构化的数据,我们可以使用对象来存放数据。那么扁平化的数据应该怎么处理呢?我第一个想到的就是.Net里的DataSet类型。因为我在大学里,以及刚毕业的时候,并不是从事JAVA的,而是从事.Net应用开发的,所以对.Net的一些特性比较清楚。
乍看之下,用DataSet来作为扁平化数据存储的容器,没有什么问题。但是,与我们的整体架构一整合,就出了问题。
因为,在整体架构里我们为客户端和服务端进行明确的职责分工,服务端只为客户端提供原始的数据,不因为客户端展示层渲染效果的不同而给不同的数据;而客户端的职责是获取服务端提供的原始数据,经过一定处理后,转化成不同的HTML代码,已各种方式进行渲染;客户端与服务端通过AJAX进行通信。这样的分工,导致各个层的职责很明确,服务端只负责根据业务抽取Service Interface(类似于SOA的设计理念,无非走的不是SOAP协议);而客户端只负责同一数据在不同页面上以不同的方式进行渲染。
这样的架构就导致我们需要在页面层,通过javascript脚本语言去操作数据,那么DataSet在页面层的表现形式是什么?最终没有想通,就放弃了该方案。
但是,在这样的分析过程中,我们确立了一点:在页面层使用JSON为数据承载的容器。想通这点,我们就全部清晰了。只要JSON对象能与JAVA层的对象进行自动转换不救可以了嘛!OK,一条路打通了。
但是,这还不是我们最终的方案。因为,我们考虑:如果我们面向组件的方式进行软件开发,同时为提高组件的复用度,那么就要在开发组件时,抛开具体的业务;那么会有什么结果呢?结果只有一个,不同的组件会定义自己特有的对象;然后当我们将N个组件组装一起时,组件与组件之间的特有对象的转换将变得异常的复杂、繁琐。
此时,我们就想起了Tibco公司的GUI组件中用的一个通用数据格式(CDF),它的英文全称是Common Data Format。如果,有人研究过这个格式的,就知道其实它就是用XML定义的一种格式。这种通用数据格式的做法,其实就是将强类型对象,转化为弱类型对象,然后在数据总线上使用弱类型对象,而对具体的组件来说,其中数据总线上获取弱类型对象,然后将弱类型对象转化成强类型对象之后,进行逻辑处理,最后再将逻辑处理的结果转化为统一格式的弱类型对象,再重新放到数据总线上,供其他组件使用。这种方式,规定了组件“吃”的和“拉”的东西在格式上的一致性,然后在通过数据总线进行传递。这样,就让组件集成的工作变得轻松、快乐,也极大的增强了组件的通用新。
我们将Tibco的CDF进行一点的变化后,变成了我们的CDF格式。也定义以下规范:
1、在页面层,使用javascript脚本语言操作对象时,使用JSON。
2、在JAVA中,使用POJO。
3、组件之间使用CDF进行通信。
4、平台提供CDF、JSON、POJO之间自动转换的工具。
分享到:
相关推荐
【标题】"IOS应用源码——Reinual-BingGaBong-7cdf1cf.rar" 提供的是一份iOS应用程序的源代码,名为“Reinual-BingGaBong”。这个项目可能是一个iOS开发者的个人作品或者一个开源项目的特定版本,版本号为7cdf1cf,...
《iOS游戏应用源代码解析——基于Reinual-BingGaBong项目》 在iOS开发领域,源代码是理解应用程序工作原理的关键。本篇将深入探讨名为“Reinual-BingGaBong-7cdf1cf”的游戏应用源代码,以此来揭示iOS游戏开发中的...
资源名:计算CDF累加分布函数_Matlab程序_CDF 资源类型:matlab项目全套源码 源码说明: 全部项目源码都是经过测试校正后百分百成功运行的,如果您下载后不能运行可联系我进行指导或者更换。 适合人群:新手及有一定...
这有助于用户理解CDF97小波的工作原理和实际应用。 在压缩包中的`waveletcdf97`文件可能是包含上述步骤的MATLAB脚本或函数,用户可以通过运行这个文件来学习和应用CDF97小波。通过研究和修改这些代码,用户可以深入...
路斯特CDF3000伺服驱动器是一款基于直流安全电压操作的高性能定位系统,适用于对成本和安全性有严格要求的自动化环境。它由路斯特公司推出,旨在提供高效、精准的运动控制解决方案。该伺服驱动器支持24至48伏直流...
简单的绘制Cdf曲线程序
这里我们将探讨两个Matlab程序——`cdftest.m`和`cdftestx.m`,它们是用来计算CDF的。 首先,`cdftest.m`可能是用于测试或演示如何计算CDF的基本脚本。这个脚本可能包含了创建随机数据、定义分布以及计算对应CDF的...
CDF要求各种证书查询方法指导.pdf
### Matlab_cdf插件安装与使用指南_V0.11 #### 一、插件简介与获取 在处理特定格式的数据文件时,如CDF (Common Data Format) 文件,我们需要使用相应的插件或工具箱来支持这些操作。对于MATLAB用户来说,安装CDF...
在无线通信领域,理解信号与噪声比(SNR, Signal-to-Noise Ratio)以及累积分布函数(CDF, Cumulative Distribution Function)是至关重要的。本文将深入探讨这些概念,并结合MATLAB编程环境,介绍如何利用提供的...
Go-CDF,全称为Cryptographic Distance Function,是一种利用Go语言开发的自动化测试工具,专门针对加密软件的正确性和安全性进行评估。它通过构建数学模型,分析加密算法在不同输入下的行为,来检测潜在的安全漏洞...
在给定的“C代码 评估 F 和学生 T 累积密度函数(CDF).rar”压缩包中,我们有两份文件:`toms322`和`toms322_test`。这些文件显然是用C语言编写的源代码,用于计算统计学中的F分布和学生T分布的累积密度函数...
三维single模型和三维模型可能是指在三维空间中展示转弯模型的CDF图,使得观察者能从不同角度分析转弯过程中的概率分布。这不仅有助于更全面地理解数据的复杂性,而且对于预测系统行为和进行有效的决策制定也至关...
本资源包含了一个C语言编写的库——"cdflib",以及对应的测试程序"cdflib_test",用于评估各种概率分布的CDF、逆CDF以及其他相关的反函数,特别是针对β分布和二项式分布。 1. **累积密度函数(CDF)**: CDF是...
This is a simple script two illustrate the concepts of Probability density function(pdf) cumulative density function (cdf). Two help pdfs are also included to understand the pdf and cdf concepts.
SPIHT(Set Partitioning in Hierarchical Trees,分层树集划分)是一种高效的图像压缩算法,由Sheikholeslam和Stockham在1996年提出。该算法基于小波分析,特别适合于高压缩比和高保真度的图像编码。在本案例中,...
根据pdf或cdf生成随机数:根据用户定义的概率密度函数(pdf)或累积分布 函数(cdf)生成随机数- -mat lab开发 句法y = randdf(S,D,F) S - 维度的大小,整数值。 示例:S=10 创建一个 10×1 数组示例:S=[10,2] 创建一个...
在MATLAB编程环境中,累积分布函数(Cumulative Distribution Function,CDF)是统计分析中的一个重要工具,用于计算变量小于或等于某一特定值的概率。本压缩包"beta_cdf.rar"聚焦于如何在MATLAB中实现对累积Beta...
- 这是因为三角形内角和为180度,所以如果有两个角相等,第三个角也必然相等。 - 例如,在△ABC和△DEF中,如果∠A = ∠D且∠B = ∠E,则△ABC∽△DEF。 3. **三边对应成比例**: - 如果两个三角形的三条边对应...