哪些GOF设计模式已作为C#中的一流语言功能实现?


10

(由于“太宽泛”和“不是一个真正的问题”,这个问题在Stack Overflow上已经关闭,也许在这里更合适?)

受到这个问题的启发。我们知道事件是Observer模式的语言级实现。是否在C#中将其他设计模式实现为语言功能?我想保留此问题特定于C#,因为有许多其他语言实现的设计模式,并且我想保持专注。

我不是在BCL中寻找模式实现(例如,许多WCF类中的装饰器或中的Factory Method WebClient),而是语言级别的模式。

到目前为止,我知道观察者(event)和迭代器(foreach结合了许多BCL类和接口)。我可能还缺少其他明显的东西。

Answers:


1

代表是事实上的战略模式


有趣的是,就在昨天,一位同事说,代表是命令模式的一种实现。我猜取决于您的看法(afaik命令也应封装参数,但如果方法没有参数,则也要封装..)
stijn 2011年

1
我不会说委托是命令模式的实现,至少我看不到如何仅使用委托来实现撤消/重做之类的事情。它们可能是命令对象的一部分,但这是另一回事
Homde 2011年

0

扩展方法是Decorator模式的抽象。


并不是的。装饰器允许我们在运行时组合对象以添加数据和行为。
Martin Doms

1
没错-因此它们不如真正的装饰器样式有用。最好说用扩展方法解决的许多问题是用其他语言的装饰器模式解决的吗?
vstrien 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.