代码之家  ›  专栏  ›  技术社区  ›  Thom Smith

正在查找设计图案的名称

  •  1
  • Thom Smith  · 技术社区  · 15 年前

    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返回在析构函数中完成模式和属性定义的对象。

    我一直把这个临时的物体称为“以弗所”,但我想知道对于这种结构是否有一个现成的术语。有人在别处看到过这个吗?

    2 回复  |  直到 9 年前
        1
  •  1
  •   harschware    15 年前

    根据 Builder pattern in wikipedia 这是 这个 建筑商,更具体地说是混凝土建筑商。实际上,这些物体通常寿命很短。builder模式有几个组件,包括director等,但您调用的这个短暂的对象似乎正是builder对象。

        2
  •  0
  •   Julian Birch    15 年前

    你肯定在使用一个构建器模式。然而,滥用GC是新的。您正在构建的语法类型的通用名称是 fluent interface .

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

    推荐文章