Delphi   发布时间:2022-04-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了delphi – 我应该使用类或方法来包装动态远程过程调用吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
情况

我想使RPC接口更容易使用.这是一个自定义界面,因此没有现成的包装器.

我必须围绕通常有许多参数的函数编写几个包装器.

可能的解决方案

解决方案1 ​​ – 为每个函数使用一个类:

TDoSomethingFunction = class
public
  property Arg1: Integer;
  property arg2: String;
  property Arg3: Boolean;
  procedure Run;
end;

调用者必须创建一个对象来调用该函数:

var
  DoSomething: TDoSomethingFunction;
begin
  DoSomething := TDoSomethingFunction.Create;
  try
    DoSomething.Arg1 := 0;
    ...
    DoSomething.Run;
  finally
  free;
end;

方法2 – 为每个函数使用包装器方法:

procedure TRPCInterface.DoSomething(AArg1: Integer; Aarg2: String; AArg3: Boolean);

来电者可以简单地称之为:

TRPCInterface.DoSomething(0,...);

亲和反对

方法1 – 每个函数的类

反对

>需要更多代码.
>必须创建一个占用内存的对象.

>阅读代码更容易,您不必查看声明以查看参数是什么.

方法2 – 包装方法

反对

>仅仅通过查看代码,您无法分辨使用哪些参数.

>写的代码要少得多.
>包装器更薄(不需要创建任何对象).

@R_391_10675@用哪种方法?

解决方法

有一个中间解决方案是调用传递object参数的包装器方法.
TDoSomethingArgs = class
public
  property Arg1: Integer;
  property arg2: String;
  property Arg3: Boolean;
end;

procedure TRPCInterface.DoSomething(Args: TDoSomethingArgs);

这种方法的一个优点是你仍然使用方法,但它仍然更具可读性.在参数中使用类(也可以使用记录)的一个优点是,您可以稍后更改参数(添加更多,更改行为),如果您选择它,它不会破坏向后兼容性 – 总之,您可以更改方法签名没有破坏代码.

大佬总结

以上是大佬教程为你收集整理的delphi – 我应该使用类或方法来包装动态远程过程调用吗?全部内容,希望文章能够帮你解决delphi – 我应该使用类或方法来包装动态远程过程调用吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。