delphi – 我应该使用类或方法来包装动态远程过程调用吗?
发布时间:2020-12-15 04:13:15 所属栏目:大数据 来源:网络整理
导读:情况 我想使RPC接口更容易使用.这是一个自定义界面,因此没有现成的包装器. 我必须围绕通常有许多参数的函数编写几个包装器. 可能的解决方案 解决方案1 ?? – 为每个函数使用一个类: TDoSomethingFunction = classpublic property Arg1: Integer; property A
情况
我想使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 – 包装方法 反对 >仅仅通过查看代码,您无法分辨使用哪些参数. 临 >写的代码要少得多. 我应该使用哪种方法? 解决方法
有一个中间解决方案是调用传递object参数的包装器方法.
TDoSomethingArgs = class public property Arg1: Integer; property Arg2: string; property Arg3: Boolean; end; procedure TRPCInterface.DoSomething(Args: TDoSomethingArgs); 这种方法的一个优点是你仍然使用方法,但它仍然更具可读性.在参数中使用类(也可以使用记录)的一个优点是,您可以稍后更改参数(添加更多,更改行为),如果您选择它,它不会破坏向后兼容性 – 总之,您可以更改方法签名没有破坏代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |