2012-07-11 82 views
1

是利用多路廣播委託的實現建造設計模式,以適當的方式?多播委託實現Builder模式?

我之所以這樣問是因爲Builder模式的我的概念/理解是可以組合/重新排列像LEGO積木方法的集合。所以,你可能有以下幾種方法:

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

...可以混合和匹配/ LEGO'd在一起,這樣一個早晨打電話:

Shower() 
FeedTheDog() 
MakeCoffee() 

...另一個上午:

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

...另一個晨曦:

MakeCoffee() 
FeedTheDog() 
Shower() 

(等) & c。因爲多播委託允許你爲委託實例添加同樣簽名的方法,並且它們會按照你添加它們的順序觸發,這裏似乎有一個語義連接(在我的無論如何,我的目前思維方式)。不過,我可能是錯的,這就是爲什麼我問。

+0

想這取決於你是否正在構建一個委託調用列表。 – 2012-07-11 13:37:33

+0

我不確定這兩者是如何相關的。你可以舉一個使用Builder模式使用多播委託的例子嗎? – 2012-07-11 13:58:04

+0

@Kevin:我來回答上面,因爲它不僅僅是幾行。 – 2012-07-11 15:40:56

回答

1

我實在不明白使用多播委託的Builder模式的優勢,除非你想推遲某些原因,方法執行。我從來沒有這樣的要求,但這並不是說它不會有用。如果你有這樣一個場景,一類是負責「準備食譜」,另一個是「烹飪配方」,我想這可能是有用的。但即使如此,您也只能使用具有相同簽名的方法。但這只是我的看法。