哈o
我正在编写用于网络使用的tier2订购软件。因此,我们有客户端和服务器。
在客户端上,我创建 TBest 的对象,在其中存储了产品ID,数量和订购用户。 (因此,这是一个订单项)。
一个订单可以有多个项目,这些项目将保存在数组中,以便以后将创建的订单发送到服务器。包含数组的类称为 TBestellung 。
所以我都创造了
TBest.toString: string;
和
TBest.fromString(source: string): TBest;
现在,我通过套接字将toString结果发送到服务器,并在服务器上使用fromString创建对象(它解析接收到的属性)。这按预期工作。
问题:
有没有更好,更优雅的方法呢?序列化是一个关键字,是的,但是当您序列化包含其他对象数组(在这种情况下为TBest)的对象(在这种情况下为TBestellung)时,这不是很糟糕/困难吗?
//小修改:在被询问之前。是的,我应该为toString和fromString创建一个额外的(静态)类,因为否则服务器需要创建一个“空” TBest,以便能够使用fromString。
最佳答案
有用于Delphi的免费序列化库(也用于Free Pascal):
JSON和XML是跨平台/跨语言的,这可能对将来与其他系统(例如基于PHP的Web shop)的接口(interface)很有帮助。它们也是免费和开放的标准(无供应商锁定)
更新:我不会使用基于构造函数的方法,虽然一开始看起来很琐碎,但(反)序列化可能会变成一个复杂的过程,它将为需要序列化的类添加越来越多的非特定于类的代码。取而代之的是,我将使用“builder”/“parser”类(工厂模式)来使职责清晰且相关性低。