加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 为什么只用一个静态函数创建一个类?

发布时间:2020-12-15 04:33:38 所属栏目:大数据 来源:网络整理
导读:最近我遇到了以下代码: interfaceTSomeClass=Classpublic class function SomeFunction(sMyString: string) : ISomeInterface;end;implementationTSomeClass.SomeFunction(sMyString: string) : ISomeInterface;begin ...Get some dependency.end; 基本上是
最近我遇到了以下代码:
interface

TSomeClass=Class
public
  class function SomeFunction(sMyString: string) : ISomeInterface;
end;

implementation

TSomeClass.SomeFunction(sMyString: string) : ISomeInterface;
begin
  ...Get some dependency.
end;

基本上是一个具有1个类函数的类.

这个结构的好处是什么,而不仅仅是一个单元中的函数而不是它的一部分?

喜欢:

interface
function SomeFunction(sMyString: string) : ISomeInterface;

implementation

SomeFunction(sMyString: string) : ISomeInterface;
begin
  ...Get some dependency.
end;

解决方法

这主要归结为个人选择.

但是,类函数提供的一个好处是伪造命名空间的方法.假设您要使用的函数名称非常简短且通用.在那种情况下,它可能会与另一个具有相同名称的符号发生碰撞,并在另一个单元中定义.此时您可能会受到单位使用订单变幻莫测的影响,并且可能需要完全限定名称.通过使用类函数,可以强制用户使用其类限定函数名称.

这里要说的另一点是,您提出的两种替代方案具有潜在的显着差异.你的问题中的类函数有一个自我指针.与实例方法不同,它指的是类而不是实例.要使这两个函数完全等效,您可以将类函数声明为静态.

class function SomeFunction(sMyString: string): ISomeInterface; static;

当然,使用非静态类函数可以完成的一件事是,它可以在需要对象方法类型的地方使用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读