Я думаю, що тут грають три фактори.
Відсутність критичної маси
По-перше, шаблон є в основному трохи більше, ніж давати ім'я якомусь коду, який реалізує певний "фрагмент" функціональності. Єдиний спосіб, коли ім'я забезпечує справжню цінність, це якщо ви можете залежати від того, щоб усі знали, що означає це ім'я, лише використовуючи ім'я, вони одразу дуже багато розуміють про код.
Зразки ніколи не встановлювали критичну масу, необхідну для цього. Скоріше навпаки, AAMOF. За 20 (або близько того) років, як вийшла книга GoF, я майже впевнений, що я не побачив десяток розмов, в яких усі учасники дійсно знали достатню кількість моделей дизайну для їх використання для покращення спілкування.
Якщо говорити трохи привабливіше: дизайнерські зразки вийшли з ладу саме тому, що вони не вдалися.
Занадто багато візерунків
Я думаю, другий головний фактор полягає в тому, що, якщо що, вони спочатку назвали занадто багато моделей. У досить великій кількості випадків відмінності між шаблонами є досить тонкими, що поруч із неможливо точно сказати, чи відповідає певний клас тому чи іншому шаблону (а може бути обом - чи, можливо, жодному).
Наміром було те, що ви зможете поговорити про код на більш високому рівні. Ви зможете позначити досить великий фрагмент коду як реалізацію певного шаблону. Просто використовуючи це заздалегідь визначене ім'я, кожен, хто слухає, зазвичай знає стільки, скільки піклується про цей код, щоб ви могли перейти до наступного.
Реальність, як правило, майже протилежна. Скажімо, ви на зустрічі та скажіть їм, що саме цей клас - це Фасад. Половина людей на зборах або ніколи не знала, або давно забула, що це означає. Один із них просить вас нагадати йому точну різницю між Фасадом і, скажімо, проксі. О, і пара людей, які насправді знають зразки, проводять решту зустрічей, обговорюючи, чи це дійсно слід вважати фасадом чи "просто" адаптером (при цьому один хлопець все ще наполягає на тому, що йому це здається проксі).
Зважаючи на те, що ваш намір насправді був просто сказати: "цей код не дуже цікавий; давайте рухатимемося далі", намагаючись використовувати назву шаблону лише додавши відволікання, а не значення.
Відсутність інтересу
Більшість моделей дизайну насправді не стосуються цікавих частин коду. Вони мають справу з такими речами, як: "як я створю ці об'єкти?" Та "як змусити цей об'єкт поговорити з цим?" Запам'ятовування назв шаблонів для цих (а також вищезазначених аргументів над деталями та ін.) Просто вкладає багато енергії в речі, про які більшість програмістів не надто переймаються.
Якщо говорити трохи інакше: моделі стосуються речей, однакових між багатьма програмами - але те, що дійсно робить програму цікавою, це те, чим вона відрізняється від інших програм.
Підсумок
Помилка моделей дизайну через:
- Вони не змогли досягти критичної маси.
- Диференціація між моделями була недостатньою для гарантування чіткості.
- Вони здебільшого мали справу з частинами коду, майже нікого насправді не цікавило.