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.