2012-07-11 83 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模式的优势,除非你想推迟某些原因,方法执行。我从来没有这样的要求,但这并不是说它不会有用。如果你有这样一个场景,一类是负责“准备食谱”,另一个是“烹饪配方”,我想这可能是有用的。但即使如此,您也只能使用具有相同签名的方法。但这只是我的看法。