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返回最终确定析构函数中的架构和属性定义的对象。
我一直将临时对象称为星表,但我想知道是否有一个预先存在的术语来表示这种结构。有人在别的地方见过这个吗?
发布于 2010-02-05 10:52:51
根据Builder pattern in wikipedia的说法,这是建造者,更具体地说,是混凝土建造者。在实践中,这些对象通常是短暂的。构建器模式有几个组件,包括控制器等。但是您正在调用的这个短暂的对象看起来就是构建器对象。
发布于 2010-02-26 23:26:52
您肯定是在使用构建器模式。然而,GC的滥用是新的。对于您正在构建的语法类型,更通用的名称是fluent interface。
您可以使用"using“语法在C#中实现类似的功能,但在实践中,人们使用lambda表达式来实现这一点,这一点更加清晰。
https://stackoverflow.com/questions/2203417
复制相似问题