7
votes

Combien de motifs non GOF pouvez-vous nommer?

Combien de motifs de conception pouvez-vous nommer qui ne sont pas des motifs GOF?

Avez-vous un lien Web qui répertorie ces noms?


2 commentaires

Recherche de "motifs référentiels" et vous trouverez de nombreux liens.


MVC, par exemple. C'est un modèle de haut niveau et il n'a pas été créé par bande de quatre. TutorialSpoint.com/design_pattern/mvc_pattern.htm


4 Réponses :


10
votes

Le page Wikipedia est toujours un bon endroit pour commencer. La colonne "dans les modèles de conception" dans la table liée vous indique quels schémas étaient dans le livre Gof et qui n'étaient pas.


0 commentaires

2
votes

La liste de Wikipedia indiquée par Brian est en effet assez complète. J'ai été surpris de trouver de Nether ...


4 commentaires

Eh bien, vous savez, wikipedia est éditable ...


Borg est assez spécifique à Python. Les modèles de conception les plus forts sont génériques entre les langues.


@Brian, à juste titre! En fait, j'appuie occasionnellement sur WP et peut simplement le faire. Ce modèle (je vais juste devoir lire la liste actuelle de manière approfondie, tant de modèles apparaissent sous différents noms et / ou avec des différents districateurs si subtils ...


@Paul McGuire: True, Borg est plus facilement implémenté à Python, bien que cela puisse être fait ailleurs (je l'ai fait en C #). Cela dit, le GOF était tout à fait conscient de l'importance du contexte linguistique dans lequel une DP est mise en œuvre et / même nécessaire. Citation: "Le choix du langage de programmation est important car il influence son point de vue". Borg est un cas intéressant en ce moment, dans lequel facilement implémenté, il ou Singleton est rarement nécessaire dans Python, contrairement à dire en Java où les méthodes de niveau de module n'existent pas.



6
votes

Pour ce que sa valeur, Modèles de conception sur Wikipedia a une liste des modèles de conception, y compris des informations sur si ces modèles apparaissent dans le livre GOF.

En haut de ma tête, GOF exclut toute une catégorie de modèles de conception liés à la concurrence, y compris le verrouillage à double vérification, le verrouillage de la spin et à peu près tout ce qui concerne PI Calculus .

En outre, certains modèles semblent suivre naturellement d'autres paradigmes de programmation:

  • Il y a beaucoup de motifs dans la programmation fonctionnelle qui n'apparaît pas dans le livre Gof. Un modèle de conception fréquemment utilisé implique l'utilisation de variables d'accumulateur pour transformer des fonctions récursives non queue en fonctions récursives de la queue. De plus, le concept d'une monade ou de ce que c'est utilisé pour aurait été entièrement étranger aux développeurs d'origine. Les objets immuables sont entièrement absents du livre GOF.

  • Le système macro de LISP pourrait probablement être considéré comme un modèle de conception, ou indicatif d'un.

  • Je n'ai jamais utilisé de langage de programmation basé sur une pile, mais je parie que les programmeurs ont beaucoup d'astuces pour obtenir leurs algorithmes de mapper proprement sur la pile.

  • de manière abstraite, vous pouvez envisager les relations entre les tableaux dans un schéma de base de données relationnelle une sorte de modèle de conception: 1 à plusieurs, plusieurs-un, beaucoup à plusieurs, un -à une. Plus que cela, il existe des moyens prévisibles de modéliser des données hiérarchiales, et voici une manière assez cookie-Cutter de Modélisation des syndicats marqués dans SQL .

  • etc.


0 commentaires

3
votes

Il n'y a que quelques autres modèles de conception de la conception de la conception. L'un est un objet nul (j'oublie l'autre). Celles-ci plus les 23 gof sont en quelque sorte orthogonale et complètes. Il n'y en a vraiment plus. Tout le reste est surtout juste une combinaison de ces 25 ou plus.


0 commentaires