1

使用多播委托是实现构建器设计模式的适当方式吗?

我问的原因是因为我对 Builder 模式的概念/理解是一组可以像乐高积木一样组合/重新排列的方法。所以你可能有以下方法:

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

...可以混合搭配/乐高积木在一起,所以有一天早上你打电话给:

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 回答