¿Qué patrones de diseño de GOF ya están implementados como características de lenguaje de primera clase en C #?

10

(Esta pregunta se cerró en Stack Overflow debido a que es "demasiado amplia" y "no es una pregunta real", ¿entonces quizás sea más apropiado aquí?)

Inspirado por esta pregunta . Sabemos que los eventos son una implementación a nivel de lenguaje del patrón Observer. ¿Hay otros patrones de diseño implementados como características de lenguaje en C #? Quiero mantener esta pregunta específica de C # porque hay muchos patrones de diseño implementados en otros lenguajes, y quiero mantener esto enfocado.

No estoy buscando implementaciones de patrones en el BCL (como decorador en muchas clases de WCF o Método de fábrica en WebClient), sino patrones a nivel de lenguaje .

Hasta ahora estoy al tanto de observador ( event) e iterador ( foreachen combinación con muchas clases e interfaces BCL). Probablemente hay otros obvios que me estoy perdiendo.

Martin Doms
fuente

Respuestas:

1

Los delegados son patrones de estrategia de facto

Homde
fuente
Es gracioso, ayer un colega decía que los delegados son una implementación del patrón de comando. Depende de cómo se mire, supongo (que yo sepa comando debe encapsular los argumentos así, pero en el caso de un método sin argumentos ..)
stijn
1
No diría que los delegados son implementación de patrones de comando, al menos no puedo ver cómo podría implementar cosas como deshacer / rehacer utilizando solo delegados. Pueden ser parte de un objeto de comando, pero ese es otro asunto
Homde
0

Los métodos de extensión son una abstracción del patrón Decorador.

vstrien
fuente
Realmente no. Decorator nos permite componer objetos en tiempo de ejecución para agregar datos y comportamiento.
Martin Doms
1
Es cierto, por lo que no son tan útiles como los patrones decoradores reales. ¿Sería mejor decir que muchos de los problemas resueltos por los métodos de extensión se resuelven con patrones decoradores en otros idiomas?
vstrien