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

delphi – 这个设计模式的名称是什么?

发布时间:2020-12-15 09:23:04 所属栏目:大数据 来源:网络整理
导读:我经常发现自己编写的类是这样使用的: 创建类的对象 在该对象上调用一些“运行”或“执行”方法 摧毁物体 这会给调用代码增加一些开销,例如: var Foo: TFoo;begin Foo := TFoo.Create(...); try Foo.Run(...); finally Foo.Free; end;end; 这可以写得更短
我经常发现自己编写的类是这样使用的:

>创建类的对象
>在该对象上调用一些“运行”或“执行”方法
>摧毁物体

这会给调用代码增加一些开销,例如:

var
  Foo: TFoo;
begin
  Foo := TFoo.Create(...);
  try
    Foo.Run(...);
  finally
    Foo.Free;
  end;
end;

这可以写得更短:

begin
  TFoo.Run(...);
end;

在这种情况下,包含TFoo类的单元将如下所示:

type
  TFoo = class
  private
    FBar: TBar;
    procedure InternalRun;
  public
    class procedure Run(ABar: TBar); static;
  end;

class procedure TFoo.Run(ABar: TBar);
var
  Foo: TFoo;
begin
  Foo := TFoo.Create;
  try
    Foo.FBar := ABar;
    Foo.InternalRun;
  finally
    Foo.Free;
  end;
end;

开销从调用代码移动到TFoo类.

这种设计模式的名称是什么?

解决方法

如果我快速浏览一下 Portland Pattern Repository,你问题的第一部分就像 MethodObject pattern非常接近.

但是既然你正在寻找后一位的名称,它被称为class method,它不是一种模式,它是一种语言结构.

(编辑:李大同)

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

    推荐文章
      热点阅读