Os benefícios são resolver problemas comuns que ocorrem em diversos tipos de sistemas/problemas de forma elegante e flexível, com alta coesão e baixa acoplamento.
Dessa forma, a legibilidade e a manutenção/evolução do código são melhores. Isso resulta em responder em menor tempo as mudanças que ocorrem ao longo do ciclo de vida do projeto, de forma sustentável, mais rápido.