Я люблю писать максимально производительный код понятный только мне и вычислительной машине. :) Потом на него можно навесить фасад для других разработчиков. :)
Злоупотребление Indirection может привести к Gas Factory и вообще злоупотребление шаблонами может привести к отравлению шаблонами и дальнейшей невозможности креативно мыслить и находить интересные решения.
Я запутался, так как GRASP Creator хочет, чтобы мы писали сильно связанный код (класс A сам создает экземпляры класса B), а Java EE хочет наоборот - слабо связанный код (например через IoC и beans). Кому верить? ))