Estudar/utilizar Design Pattern é uma das melhores coisas que tenho aprendido nos últimos tempos. É impressionante como deixa o código mais limpo, organizável e, talvez o mais importante, fácil de fazer modificações.
Apliquei o observer recentemente também é ridículo o quanto que ele facilitar caso eu queira adicionar/remover reação a um determinado evento é realmente muito bom.
Sim, utilizar Design Pattern é como um guia para o software. Você tem um problema e a maioria das vezes já foi solucionado com algum Design Pattern.