Delphi + DataSnap:如何调用多个类?

时间:2012-09-15 11:53:04

标签: delphi datasnap

家伙,

有一些关于Delphi和Datasnap的信息,我仍然无法找到或弄清楚...想象一下,我想把我所有的智慧放在服务器层。在这种情况下,当然,我将使用Object Orientation概念,创建大量的类,每个类都有自己的方法和属性。因为在每个例子中我都看到一个客户端只检索一个服务器类的信息,我想知道:无论如何,是否可以使用多个类,或者我只限于一个包含一堆不同方法的类?

你能理解吗?

感谢您的帮助,

圣保罗

3 个答案:

答案 0 :(得分:1)

目前还没有有用的答案,所以我决定给出一个。 如果没有,则在给定示例的大部分中都有一个TWebDataModule,您可以将数据模块放在放置DSServer组件的位置。在这里您将找到DSServerClass(1),它负责公开一个类的服务器方法。

因此,您可以做的是将另一个 DSServerClass 拖放(创建)到模块中。现在,在ObjectInsepecor中,转到 properties-> Server 设置默认服务器,该服务器的名称可能为DSServer1(在示例中为默认服务器)。双击事件-> OnGetClass ,以便将处理程序分配给该处理程序。

现在   您可以这样编写(您可以看到第一个DSServerclass1中现有的一个以供参考)   设置PersistentClass := ServerMethodunit1.user;,此处 user 是方法需要公开的类名。

答案 1 :(得分:0)

此场景的有用设计模式 - 许多业务类必须通过通信层与“外部”客户端应用程序通信 - Facade

  

外观是一个为更大的界面提供简化界面的对象   代码体,例如类库。

对于客户端,Facade公开了方法,这些方法又调用业务类的实例。

这也有一个优势,即您的业务模型类可以在API保持稳定的同时发展。

另外,您应该考虑 Data Transfer Objects ,这是一种避免公开内部对象类和数据结构以实现更好封装的设计模式。

答案 2 :(得分:0)

DataSnap服务器将多个类公开给客户端没有问题。只是看看样品。甚至“基本”示例服务器也会公开三个服务器类。