Quels modèles de conception GOF sont déjà implémentés en tant que fonctionnalités de langage de première classe en C #?

10

(Cette question a été fermée sur Stack Overflow en raison d'être "trop ​​large" et "pas une vraie question" alors peut-être que c'est plus approprié ici?)

Inspiré par cette question . Nous savons que les événements sont une implémentation au niveau de la langue du modèle Observer. Existe-t-il d'autres modèles de conception mis en œuvre en tant que fonctionnalités de langage en C #? Je veux garder cette question spécifique à C # car il y a beaucoup de modèles de conception implémentés dans d'autres langages, et je veux que cela reste concentré.

Je ne cherche pas des implémentations de modèle dans la BCL (comme le décorateur dans de nombreuses classes WCF ou la méthode d'usine dans WebClient), mais des modèles au niveau du langage .

Jusqu'à présent, je connais observateur ( event) et itérateur ( foreachen combinaison avec de nombreuses classes et interfaces BCL). Il y a probablement d'autres évidents qui me manquent.

Martin Doms
la source

Réponses:

1

Les délégués sont des modèles de stratégie de facto

Homde
la source
drôle, hier encore, un collègue disait que les délégués étaient une implémentation du modèle de commande. Cela dépend de la façon dont vous le regardez, je suppose (la commande afaik devrait également encapsuler les arguments, mais dans le cas d'une méthode sans arguments ..)
stijn
1
Je ne dirais pas que les délégués implémentent des modèles de commande, du moins je ne vois pas comment vous pourriez implémenter des choses comme annuler / rétablir en utilisant uniquement des délégués. Ils pourraient faire partie d'un objet de commande, mais c'est une autre affaire
Homde
0

Les méthodes d'extension sont une abstraction du modèle Decorator.

vstrien
la source
Pas vraiment. Decorator nous permet de composer des objets au moment de l'exécution pour ajouter des données et des comportements.
Martin Doms
1
Vrai - ils ne sont donc pas aussi utiles que de vrais motifs de décoration. Serait-il préférable de dire que la plupart des problèmes résolus par les méthodes d'extension sont résolus avec des motifs décoratifs dans d'autres langues?
vstrien