Quais padrões de design do GOF já estão implementados como recursos de linguagem de primeira classe em C #?

10

(Esta questão foi encerrada no Stack Overflow devido a ser "muito ampla" e "não é uma pergunta real", então talvez seja mais apropriado aqui?)

Inspirado por esta pergunta . Sabemos que os eventos são uma implementação no nível do idioma do padrão Observer. Existem outros padrões de design implementados como recursos de linguagem em C #? Quero manter essa pergunta específica para C # porque há muitos padrões de design implementados em outros idiomas e quero manter isso focado.

Não estou procurando implementações de padrões no BCL (como decorador em muitas classes WCF ou Método de fábrica WebClient), mas sim padrões no nível da linguagem .

Até agora, estou ciente do observador ( event) e do iterador ( foreachem combinação com muitas classes e interfaces BCL). Provavelmente há outros que estão faltando.

Martin Doms
fonte

Respostas:

1

Delegados são padrões de estratégia de fato

Homde
fonte
engraçado, ontem mesmo um colega estava dizendo que delegados são uma implementação do padrão de comando. Depende de como você olha para ele Eu acho que (afaik comando deve encapsular os argumentos bem, mas no caso de um método sem argumentos ..)
stijn
11
Eu não diria que delegados são implementação de padrões de comando, pelo menos não consigo ver como você pode implementar coisas como desfazer / refazer usando apenas delegados. Eles podem ser parte de um objeto de comando, mas isso é outro assunto
Homde
0

Os métodos de extensão são uma abstração do padrão Decorator.

vstrien
fonte
Na verdade não. O Decorator nos permite compor objetos em tempo de execução para adicionar dados e comportamento.
Martin Doms 25/03
11
Verdadeiro - portanto, eles não são tão úteis quanto os padrões reais de decoradores. Seria melhor dizer que muitos dos problemas resolvidos pelos métodos de extensão são resolvidos com padrões de decorador em outros idiomas?
vstrien