创建 Delphi DataSnap 程序的问题集萃(4)

(本文所讨论的开发环境,为 Delphi XE5)

    最近有点小忙,博客只能忙里偷闲地写了。

    本篇介绍如何在客户端和服务器端之间传递数据。

    我本人很不喜欢在页面上频繁地使用数据感知控件,并使用 DataSet 来作为参数传来传去——因为 DataSet 并不是一个强类型类,而且它与数据库的耦合性太紧了。

    相比较于 DataSet(如 TClientDataSet),我更习惯于用自定义的类来在层间传递数据。这在 Java 中称之为 Value Object(VO),即值对象。

    在面向对象设计的初期,人们用对象来替代子程序,因为它提供了更高一级的抽象和封装。但在三层大行其道的今天,服务器端为了能服务更多的用户,充分发挥服务器的性能,人们提出了无状态对象的概念。这其实是把原本的对象属性和方法拆开,将只含方法的对象称之为无状态对象或服务,将含属性的对象称之为值对象DTO(它在各层之间流转,并可能不停地变化,名称也不停地变成 VO、PO等)。

    DataSnap 是一个轻量级的三层引擎。在此,我用一个示例来演示 DataSnap。示例中,我简化了流程,定义值对象 VO 横穿三层(大家也可以根据自己的情况具体设定)。

    这是一个登录以及用户维护的示例。因为我觉得,登录是我们开发日常的企业程序,首要完成的事情。而用户对象,其实是一个主从表的结构:主表是用户信息,从表是用户权限。这样的结构很有典型意义。

    先定义用户值对象
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值