Jeremy Miller publicou um bom post falando sobre Design patterns e aplicá-los.
Em resumo, suas principais razões para utilizar design pattern seriam:
- Facilitar comunicação e entendimento - Um desenvolvedor que conhece design patterns facilmente reconhece quando e porque um pattern está sendo utilizado. Isto acelera o seu entendimento em relação a um código-fonte. Dois desenvolvedores que conhecem design patterns conseguem trocar idéias de forma mais rápida e eficiente discutindo uma solução. Por exemplo, devemos utilizar MVP ou MVC na camada de interface.
- Aproveitar conhecimento prévio - Design patterns são soluções implementadas, testadas e aplicadas na prática. É um bom ponto de começo para quem não quer reinventar a roda.
- Conhecer opções - Conhecendo design patterns você conhece várias opções para solucionar o seu problema, inclusive pontos fortes e fracos de cada uma delas.
Para mim são ótimos argumentos. Vale a pena também ler o que ele fala sobre níveis de conhecimento, não basta saber os nomes e brever descrições dos patterns...