簡體   English   中英

多播代表實現了Builder模式?

[英]Multicast Delegates implement the Builder pattern?

使用多播委托是否是實現Builder設計模式的適當方法?

我問的原因是因為我對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()

(等&c。無限廣告和惡作劇)

而且由於多播委托可以讓您將相同簽名的方法添加到委托的實例中,並且它們會按照您添加它們的順序觸發,因此這里似乎存在語義聯系(在我看來/與我目前的思維方式有關,無論如何)。 我可能是錯的,所以這就是為什么。

除非您出於某種原因想要推遲執行方法,否則我並沒有真正看到將多播委托用於Builder模式的好處。 我從來沒有這個要求,但這並不是說它沒有用。 如果您有一個場景,其中一個班級負責“准備食譜”,而另一個班級則負責“烹飪食譜”,那么我想這可能會很有用。 即使這樣,您也將被限制為僅使用具有相同簽名的方法。 不過這只是我的意見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM