На этот вопрос уже есть ответы здесь :
Закрыто 8 лет назад .
Возможный дубликат: Являются ли шаблоны проектирования слабыми местами языка?
Проведя годы, проливая книги по ООП и методам ООП, и в последнее время все больше и больше вовлекаясь в функциональные стили программирования, было бы справедливо экстраполировать, что шаблоны проектирования являются указатели на системные проблемы объектно-ориентированного программирования в целом. Есть ли фундаментальный недостаток в объектно-ориентированном программировании (не путать с дизайном), заключающийся в том, что обработка состояния посредством инкапсуляции привела к появлению все большего количества шаблонов для решения проблем с такой парадигмой.
Я не видел приходить к каким-либо выводам по этому поводу, но мое "внутреннее" чувство таково, что может быть что-то более серьезное неправильное с парадигмой ООП.
Сама идея инкапсуляции порождает больше проблем, чем решает.