寻找设计模式的名称

时间:2010-02-04 21:37:34

标签: design-patterns vbscript garbage-collection destructor ephemeron

VBScript保证GC将在每一行之后运行,因此如果你创建一个对象而不保留一个引用,它的析构函数将在该行的末尾被调用。这允许你做一些有趣的事情,其中​​一个是模拟可选参数:

with foo(mandatoryArg)
    .optArg = 42
end

另一个允许使用方便的构建器语法:

with Schema.define("Foo")
    .attr "name", String

    with .attr "key", String
        .lengthEquals(10)
    end
end

在此示例中,define和attr返回在析构函数中完成模式和属性定义的对象。

我一直把临时对象称为ephemeron,但我想知道是否有这样的结构预先存在的术语。有人在别处见过这个吗?

2 个答案:

答案 0 :(得分:1)

根据Builder pattern in wikipedia,这是 构建器,或者更具体地说是具体构建器。在实践中,这些物体通常是短暂的。构建器模式有一些组件,包括导向器等。但是这个称为ephemeron的短暂对象似乎正是构建器对象。

答案 1 :(得分:0)

您肯定使用的是构建器模式。但滥用GC是新的。您正在构建的语法类型的更通用的名称是fluent interface

您可以使用“using”语法在C#中实现类似的功能,但在实践中,人们使用lambda表达式,这更加明确。