Ho visto, qui su Programmers, la risposta a questa domanda: come cambia il modo di pensare sui modelli di progettazione e le pratiche OOP in dinamico e lingue debolmente tipizzate? Lì ho trovato un collegamento a un articolo con un titolo esplicito: Sono modelli di progettazione le caratteristiche della lingua mancante . Ma dove ho trovato frammenti che a me sembravano molto orecchiabili e che probabilmente possono essere verificati rispetto all'esperienza fornita, c'è un incentivo per questo, come:
PaulGraham said "Peter Norvig found that 16 of the 23 patterns in Design Patterns were 'invisible or simpler' in Lisp."
o un'altra frase che conferma ciò che ho visto di recente con persone che cercano di simulare le classi in JavaScript:
Of course, nobody ever speaks of the "function" pattern, or the "class" pattern, or numerous other things that we take for granted because most languages provide them as built-in features. OTOH, programmers in a purely PrototypeOrientedLanguage? might well find it convenient to simulate classes with prototypes...
Sto anche prendendo in considerazione che i modelli di progettazione sono uno strumento di comunicazione . Perché anche con la mia limitata esperienza nella partecipazione alla creazione di applicazioni posso vedere come un anti-pattern ( inefficace e / o controproducente e) ad esempio, costringendo un piccolo team di PHP ad apprendere modelli GoF per l'app intranet di piccole e medie dimensioni. Sono consapevole che la portata, la portata e lo scopo possono determinare ciò che è efficace e / o produttivo, ma comunque non sono riuscito a trovare una panoramica tecnica al riguardo.
Ho visto piccole applicazioni commerciali che si sono mischiate a funzioni con OOP e sono comunque mantenibili, e non so se molti avrebbero bisogno ad esempio di python per scrivere un singleton, ma per me un semplice modulo fa la stessa cosa.