Ищу название шаблона дизайна - PullRequest
1 голос
/ 05 февраля 2010

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 ]

1 голос
/ 05 февраля 2010

В соответствии с шаблоном строителя в википедии это строитель или, точнее, бетонный строитель. На практике эти объекты обычно недолговечны. В шаблоне компоновщика есть несколько компонентов, в том числе директор и т. Д. Но этот недолговечный объект, который вы называете эфимероном, кажется именно объектом компоновщика.

0 голосов
/ 26 февраля 2010

Вы определенно используете шаблон строителя. Злоупотребление GC является новым, однако. Более общее название для типа синтаксиса, который вы создаете: свободный интерфейс .

Вы могли бы достичь чего-то подобного в C # с помощью синтаксиса "using", но на практике люди используют для этого лямбда-выражения, которые более понятны.

...