ПРЕАМБУЛА: Как правило, синглтон считается наиболее злоупотребляемым шаблоном, если не более чем тот факт, что многие будут использовать его для написания поточного программирования фактически, если не в действительности, тогда как другие это как замена глобальных переменных.
ТЕЛО: Существует книга под названием "Язык шаблонов", которая предшествует выдающемуся GoF на несколько лет. Он призывает к схожему языку между различными аспектами проекта - он, очевидно, оказал большое влияние на «Шаблоны проектирования», и те, кто знает оба текста, считают его превосходящим.
Мой личный опыт показывает, что GoF полезен только в определенных обстоятельствах и далеко не охватывает все ООП. Я действительно нахожу довольно забавным, что некоторые шаблоны устарели в других языках, а другие просто излишне описывают тот же сценарий (действительно ли так много различий между тем, что адаптирует и переводит?)
Шаблоны, в общем, хорошая вещь. Хорошо, что Singletons обычно используют статический метод getInstance. Хорошо, что многие структуры MVC используют аналогичные соглашения об именах. С другой стороны, паттерны - это еще не все, и это нужно помнить.
Рекомендуемое чтение:
http://perl.plover.com/yak/design/