1

VBScriptは、GCがすべての行の後に実行されることを保証します。したがって、オブジェクトを作成し、参照を保持しない場合、そのデストラクタは行の最後で呼び出されます。これにより、いくつかの興味深いことを実行できます。そのうちの1つは、オプションの引数をシミュレートすることです。

with foo(mandatoryArg)
    .optArg = 42
end

もう1つは、便利なビルダー構文を使用できるようにすることです。

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

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

この例では、デストラクタのスキーマと属性の定義を確定するオブジェクトをdefineとattrで返します。

私は一時オブジェクトをエフェメロンと呼んでいますが、そのような構造には既存の用語があるのではないかと思いました。他の場所でこれを見た人はいますか?

4

2 に答える 2

1

ウィキペディアのビルダーパターンによるとこれはビルダー、より具体的には具体的なビルダーです。実際には、これらのオブジェクトは通常短命です。ビルダーパターンには、ディレクターなどを含むいくつかのコンポーネントがあります。しかし、エフェメロンと呼んでいるこの短命のオブジェクトは、まさにビルダーオブジェクトのようです。

于 2010-02-05T02:52:51.290 に答える
0

あなたは間違いなくビルダーパターンを使用しています。ただし、GCの乱用は新しいものです。構築している構文のタイプのより一般的な名前は、流暢なインターフェースです。

「using」構文を使用してC#で同様のことを実現できますが、実際には、ラムダ式を使用します。これはより明確です。

于 2010-02-26T15:26:51.860 に答える