Я вважаю, що банда з чотирьох класифікує дизайнерські зразки як
загальне рішення поширеної проблеми *
Так, так, закономірності є актуальними, коли виникає однотипний проблем. І це приводить нас до проблеми з терміном "Шаблон дизайну". Шаблон - це щось впізнаване, що відбувається неодноразово. Тож насправді не існує шаблону конструкцій, існує закономірність проблем.
Деякі мови програмування можуть мати вроджене рішення деяких із цих проблем. У самій книзі "Шаблони дизайну" зазначається, що шаблон відвідувачів має мало значення, якщо ви використовуєте CLOS, оскільки мультидиспетчер підтримується CLOS, саме проблему, яку намагається вирішити шаблон відвідувачів.
Також .NET Framework має вбудований механізм подій для публікації подій для багатьох слухачів, що робить шаблон спостерігача менш актуальним у цьому контексті.
Перехід від настільних програм до веб-додатків ** також змінює тип проблем програмування, які ми маємо вирішити. Багато зразків у книзі "Шаблони дизайну" є актуальними для настільних додатків, але не так багато для веб-додатків. Звичайно, що для програм на одній сторінці ці шаблони можуть бути знову актуальними на стороні клієнта.
Але шаблони дизайну та книги типу "Шаблони дизайну" або "Шаблони архітектури прикладних програм підприємства" мають величезну цінність, коли ви початківець програміст і стикаєтеся з новим типом проблем; тому що мене вперше запропонували реалізувати функцію Undo. Якби не книга «Шаблони дизайну», моя реалізація, ймовірно, була б чимось схожою на зберігання одразу даних після кожної операції зі зміни стану *** - дуже схильний до помилок і жахливо неефективний підхід.
Так, так, деякі з часом стають менш актуальними, і коли ви стаєте досвідченим програмістом, ви менше думаєте про них. Але для початківця вони цінні, доки ви пам’ятаєте, що вони є засобом для вирішення проблеми - а не прагненням використовувати якомога більше.
* цитата може бути не на 100% точною, оскільки вона взята з пам'яті
** На мій досвід, підприємствам стає дуже часто обирати механізми веб-доставки для внутрішніх додатків бізнес-секторів.
*** після вивчення функціонального програмування та функціональних структур даних, то це насправді може бути таким, як я би вирішив це сьогодні.