1

マルチキャスト デリゲートの使用は、Builder デザイン パターンを実装する適切な方法ですか?

私が質問する理由は、Builder パターンの概念/理解が、レゴ ブロックのように組み合わせ/再配置できるメソッドのコレクションであるためです。したがって、次の方法があるかもしれません。

void Shave(int StrokeCount) { ... }
void FeedTheDog(int Cups) { ... }
void MakeCoffee(int Cups) { ... }
void Shower(int Temperature) { ... }

...それを組み合わせたり、LEGO で組み合わせたりできるので、ある朝、

Shower()
FeedTheDog()
MakeCoffee()

...別の朝:

Shower()
Shave()
FeedTheDog()
MakeCoffee()

...別の朝:

MakeCoffee()
FeedTheDog()
Shower()

(etc. &c. ad infinitum ad nauseum)

また、マルチキャスト デリゲートを使用すると、同じ署名のメソッドをデリゲートのインスタンスに追加でき、それらは追加した順序で起動するため、ここには意味的なつながりがあるようです (私の考えでは/私の現在の考え方に対して、とりあえず)。間違っているかもしれませんが、質問させてください。

4

1 に答える 1

1

なんらかの理由でメソッドの実行を延期したい場合を除き、Builder パターンにマルチキャスト デリゲートを使用する利点はあまりわかりません。私はこの要件を持ったことはありませんが、役に立たないというわけではありません。あるクラスが「レシピの準備」を担当し、別のクラスが「レシピの調理」を担当するシナリオがあれば、それは役立つと思います。ただし、その場合でも、同じシグネチャを持つメソッドのみを使用するように制限されます。これは私の意見です。

于 2012-07-11T17:23:02.313 に答える