web-dev-qa-db-fra.com

Modèles de conception célèbres qu'un programmeur C ++ devrait connaître

Duplicata possible:
Quels idiomes C++ les programmeurs C++ devraient-ils utiliser?

Après avoir lu des livres comme C++ Primer, Effective C++ et TC++ PL, je veux apprendre certains modèles de conception importants.

Alors, quels sont les célèbres modèles de conception que tout programmeur C++ devrait connaître?

31
Prasoon Saurav

La réponse évidente est les motifs Gang-Of-Four du célèbre livre. Ce sont les mêmes modèles qui sont répertoriés partout.

http://en.wikipedia.org/wiki/Design_Patterns

Au-delà de cela, jetez un œil au site Web de Martin Fowlers ...

http://martinfowler.com/

Il y en a pas mal - le "célèbre" est probablement "l'injection de dépendance". La plupart des autres sont cependant assez spécifiques au domaine.

Les "couches de mixage" peuvent être intéressantes pour C++. Une classe de modèle prend sa propre base comme paramètre de modèle, de sorte que le modèle peut être utilisé pour ajouter la même fonctionnalité à de nombreuses classes différentes, ou comme méthode de composition afin que diverses fonctionnalités puissent être facilement incluses/exclues pour une bibliothèque. L'astuce de modèle curieusement récurrente est parfois utilisée également (la base d'origine est la classe finale entièrement composée) afin que les différentes couches de mixage puissent faire un certain degré de "réflexion", de sorte que les méthodes intermédiaires peuvent être définies en termes de composition complète types de membres, etc. Bien sûr, il peut être un peu sujet à des dépendances cycliques insolubles, si vous ne faites pas attention.

http://portal.acm.org/citation.cfm?id=505148

19
Steve314

C++ - spécifiques: RAII et PIMPL.

24
Michael

Dans aucun ordre particulier, les modèles Gang of Four que je vois et utilise le plus sont probablement les suivants:

  • Composite
  • Méthode de modèle
  • Usine abstraite
  • Singleton (très détesté, mais partout)
  • Visiteur
  • Constructeur
  • Procuration
10
Drew Hall
8
CrociDB

Le schéma de réflexion. C'est une balle d'argent.

7
wilhelmtell

Je suggère de lire Head First Design Patterns . C'est une lecture amusante et vous en apprendrez sur beaucoup de modèles de conception courants.

6
Nate W.