RIA 体系中的设计模式-客户端组件到服务器的通讯(完)(翻译)
来源:互联网 发布:淘宝上怎么不买香烟 编辑:程序博客网 时间:2024/05/07 19:38
声 明 本章节由笔者与网友 withwind 联合翻译。 --------------------------------------------------
本章节由笔者与网友 withwind 联合翻译。
--------------------------------------------------
客户端组件到服务器的通讯
在对客户端组件到服务器的通讯进行设计时,必须应用尽可能小并且细粒度的组件来组建界面,并需要具有包含其他组件的能力,同时还要保留它 * 组件功能的中央控制
* 消息接收的中央控制
* 服务通讯的中央控制
* 分离的代码来控制界面逻辑和事件管理
这个设计在用户界面的基础之上建立了四个类,如下图所示:
图6:客户端组件到服务器通讯所需要的四个类
这四个类各自的职责如下:
* 用户界面是控件(日历,数据表格,检查框,颜色等等)依存的地方。
* 视图逻辑包含操作用户界面的代码,映射数据到字段,描绘数据等等。
* 本地数据模型是指那些为应用程序保存数据的组件。
* 控制器和协调器通常被实现为一个组件。
- 控制器负责为用户界面控制所有的过程。它决定如何处理从远程服务器或从用户界面传来的事件。
- 协调器负责从组件到远程服务的外部通讯。协调器还负责承载那些从远程服务回调的方法。
根据这种方式设计用户界面,无论你以何种形式把组件放在界面中,UI组件们都保持了其个体独立性。通过为个别组件提供一个通用的抽象接口,协调器允许UI组件独立运作或是作为一个更大的界面组件的一部分被使用。下图描绘了客户端结构:
图7:客户端体系结构
以银行应用为例,它包含了一个可以把用户服务请求提交到银行的界面组件。服务中介从界面组件中请求一个针对这个远程服务的处理器使得它可以运行适当的方法。这个界面包括大量的控件以及一个按钮来触发响应事件。界面控制器的视图逻辑能够捕捉到该事件。当事件被调用时,它触发控制器并通知视图逻辑来为本次事务建立本地数据模型。等应用程序将数据模型准备好后,控制器通知协调器,让它提交一个用户服务请求并传递所收集的数据。协调器与服务中介联系,请求适当的服务并传递给它一个针对它自己的操作句柄。当协调器受到从服务中介传递来的消息后,它发出一个消息来产生适当的请求。当服务器上的服务运行结束之后,它传递反应数据消息到客户端。桥接器引导这个反应消息到协调器,以决定调用控制器上的哪个方法,并接着调用那条信息来正确的转变界面外观。
永恒的主题
顺理成章,任何应用程序体系结构都渐渐变得脱离它的独特需求,而开始应该遵循一种严格的设计方法。这篇文章提出两种庞大的客户端模式,你应该把它们所阐述的普遍观点应用在所有应用程序开发项目中。稍后的文章会阐述更多的特殊设计模式和它们所能解决的问题。
向丰富迁移
软件开发,以及促使软件开发逐渐向“技术和问题的集合”方向发展的观点是很总要的。Web程序开发的传统模式把信息和程序资源组织起来,来应对广阔的用户需求,但是往往在可用性和用户体验上面很糟糕。RIA在直觉上保留这种Web部署模式,来响应用户体验。这么一来,这种概念就是围绕着怎样构建重视新功能和用户模式的应用程序展开。在观点上会产生微小变化,运用现有的后端服务器和程序结构,也可提供更好的用户体验。
(请注意!引用、转贴本文应注明译者:Rosen Jiang 以及出处:http://blog.csdn.net/rosen)
(请注意!引用、转贴本文应注明译者:Rosen Jiang 以及出处:http://blog.csdn.net/rosen)
- RIA 体系中的设计模式-客户端组件到服务器的通讯(完)(翻译)
- linux局域网通讯源码(服务器多路复用和客户端多进程模式)(socket)客户端
- Android UI体系中的Observer设计模式
- C# Scoket 简单的服务器客户端通讯
- 客户端与服务器通讯的类
- 简单的TCP服务器与客户端通讯
- 客户端和服务器通讯 方法(1)
- 客户端和服务器通讯 方法(2)
- 服务器--客户端通讯
- linux局域网通讯源码(服务器多路复用和客户端多进程模式)(socket)服务器端
- ExtJS中的组件体系
- 设计模式--装饰者模式(在IO体系中的应用)
- 服务器中的库备份到客户端
- 【转】关于基于JavaSript的RIA客户端数据处理(上)
- 【转】关于基于JavaSript的RIA客户端数据处理(下)
- 一种减轻服务器负担并提高客户端间通讯效率的网络通讯设计[TCP/UDP合用] | 简单加密
- Modbus从机(服务器)通讯设计
- 服务器java客户端C#的Socket通讯遇到的坑
- ASP常用的函数
- 感激所有使你坚强的人
- hello?
- [C++]千万小心局部变量
- Java中static、this、super、final用法简谈
- RIA 体系中的设计模式-客户端组件到服务器的通讯(完)(翻译)
- 着色器和效果——3.2 像素着色器输入和输出
- 20040708今天我还活着
- 7月8日,原创网站访问量一天增加60多点
- Dell 电话技术支持工程师答用户问(转载)(暴笑)
- 2004.07.08,Thu - 周郎与黄盖
- 报关管理系统-生产企业
- 为已存在的ATL工程改GUID和接口名
- 遇见一个百分之百的女孩