Здесь, в «Программистах», я увидел ответ на этот вопрос: как меняется мышление о шаблонах проектирования и методах ООП в динамических и слабо типизированных языках? Там я нашел ссылку на статью с откровенным заголовком: отсутствуют ли в шаблонах дизайна языковые функции . Но там, где я нашел фрагменты, которые мне показались очень запоминающимися и которые, вероятно, можно проверить по опыту, учитывая, что для этого есть стимул, например:
Пол Грэхэм сказал: «Питер Норвиг обнаружил, что 16 из 23 шаблонов в шаблонах проектирования были« невидимыми или более простыми »в Лиспе».
или другое предложение, которое подтверждает то, что я недавно видел с людьми, пытающимися симулировать классы в JavaScript:
Конечно, никто никогда не говорит о шаблоне «функции», или «шаблоне», или о множестве других вещей, которые мы считаем само собой разумеющимися, потому что большинство языков предоставляют их как встроенные функции. Ото, программисты в чисто PrototypeOrientedLanguage? вполне может оказаться удобным моделировать классы с помощью прототипов ...
Я также принимаю во внимание, что шаблоны проектирования являются инструментом коммуникации . Потому что даже с моим ограниченным опытом участия в создании приложений я могу видеть, например, как анти-шаблон ( неэффективный и / или контрпроизводительный e), заставляющий небольшую команду PHP изучать шаблоны GoF для малых и средних интранет-приложений. Я знаю, что масштаб, область применения и цель могут определить, что является эффективным и / или продуктивным, но все же мне не удалось найти технический обзор по этому поводу.
Я видел небольшие коммерческие приложения, которые смешивали функционал с ООП и все еще поддерживались в обслуживании, и я не знаю, понадобится ли многим, например, на python, чтобы написать синглтон, но для меня простой модуль делает то же самое.