【问题标题】:Looking for the name of a design pattern寻找设计模式的名称
【发布时间】:2011-01-13 06:57:15
【问题描述】:

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

with foo(mandatoryArg)
    .optArg = 42
end

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

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

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

在本例中,定义和 attr 返回在析构函数中最终确定架构和属性定义的对象。

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      您可以使用“using”语法在 C# 中实现类似的功能,但实际上人们使用 lambda 表达式来实现这一点,这更清楚。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多