it-swarm.dev

Quel est le modèle de conception le plus fréquemment utilisé?

Selon vous, quel modèle de conception est le plus populaire?

24
Tamara Wijsman

Je suis presque sûr que le plus courant est "The Big Ball of Mud". Malheureusement pour nous tous.
http://en.wikipedia.org/wiki/Big_ball_of_mud

39
Jay

MVC et ses variations est certainement l'un des meilleurs modèles de conception.

25
ysolik

Si vous parlez de Gang-of-Four modèles de conception, je dois dire Singleton. C'est une situation vraiment triste - presque comme si les programmeurs entendent parler de la magie des modèles de conception et s'arrêtent simplement après le premier.

Si vous parlez de motifs de style architectural (en d'autres termes, des motifs de conception qui s'étendent sur plusieurs classes ou couches), je dois dire MVC . Quelques autres modèles populaires sont le modèle référentiel et localisateur de service.

21
Jaco Pretorius

Observateur

Si vous avez déjà utilisé un événement. Vous avez utilisé Observer.

16
Steven Evers

Décorateur

Ajoutez des fonctionnalités à un objet lors de l'exécution via la composition. Mon préféré.

Edit: Aussi Factory est probablement l'un des plus courants.

7
JD Isaacks

Pourquoi personne n'a-t-il encore mentionné itérateur? Surtout avec toutes les cartes qui composent des structures de données complexes ... c'est celle que j'utilise le plus. Ou parlons-nous de modèles que nous ré-implémentons?

5
ToTheBeach

modèle de stratégie

Si vous avez déjà utilisé l'injection de dépendance, vous avez utilisé le modèle de stratégie.

5
richeym

Façade

Pensez à n'importe quelle interface REST comme Twitter ou les API SO. Elle cache un tas de trucs d'arrière-plan qui, au moins dans le cas des twitters, peuvent être horriblement complexes) .

Est-ce que je me soucie dans quels tweets db tables @ apklusk sont stockés? Et qu'il a un cache rapide? Et que @shemnon a un si faible lectorat, les tweets sont toujours en mémoire? C'est la magie de la façade.

5
shemnon

Je suis surpris que personne n'ait mentionné le modèle Factory, d'après mon expérience, c'est l'un des modèles les plus utilisés (et les plus maltraités). Si ce n'est pas le premier, le singleton devrait probablement être le premier, j'aurais pensé que ce serait une seconde proche.

3
AlexC

En plus de ma réponse précédente, je vais en ajouter une nouvelle que j'ai rencontrée aujourd'hui de ma bête d'un projet hérité:

Copier/Coller

Pendant le débogage, je suis tombé sur un morceau de code appelant 2 fonctions de même nom:

if(x)
   Func1
else
   Func2

Func1 et Func2 avaient les mêmes paramètres. Je les ai retirés et j'ai différé, et ils sont 100% identiques, sauf pour les appels Func1 Func3 et Func2 appelle Func4. Je les ai retirés et je les ai différenciés. 100% identique, sauf pour 1 ligne. Un programmeur précédent a donc décidé de copier et coller deux fonctions imbriquées de 50 lignes, au lieu d'ajouter un paramètre indicateur, à 2 fonctions privées utilisées à exactement 1 endroit. Ça me donne envie de pleurer.

3
Jay

En parlant de modèles de conception Gang-of-Four, je ne peux pas penser à un programme qui n'utilise pas le modèle Observer. De plus, comme Jaco l'a mentionné, Singleton est également très utilisé, malheureusement il est devenu un marteau (tout programmeur l'utilise même s'il n'est pas complètement nécessaire).

2
Cristian

Interprète

Rarement implémenté, souvent utilisé. Sélecteurs XPATH, XSLT, Regex, jQuery, etc.

2
Jesse Millikan

Spécification

Je ne pense pas qu'il soit répertorié dans le GoF, mais j'utilise des variations de celui-ci tout le temps.

1
John Kraft

Je suis surpris que personne n'ait encore dit "Builder". Ou "Adaptateur". Ils ne sont probablement pas aussi exotiques que certains des autres mentionnés, mais je les utilise tout le temps. Factory et Abstract Factory sont également très courants (mais ils sont déjà pris).

1
Tim Claason

Le modèle de conception le plus fréquemment utilisé est, évidemment, Spaghetti .

1
SK-logic

Au niveau de la conception de logiciels, je dirais que le composite, la stratégie et le modèle (et dans une moindre mesure, l'usine) sont les plus largement utilisés. Au cours de la dernière décennie, nous avons constaté une préférence pour la composition par rapport à l'héritage lors de la construction de nos systèmes en utilisant une conception OO. Par conséquent, la combinaison des modèles qui viennent d'être mentionnés joue un rôle beaucoup plus important que tous les autres OMI.

Sur le plan architectural, je plaiderais pour MVC sur l'entreprise et des modèles basés sur des machines d'état du côté embarqué des choses.

0
luis.espinal