Pela aparência da pergunta de revisão de código que você fez, você está no estágio de exagerar. Eu acho que é um problema bastante comum entre as pessoas que descobrem a importância de um bom design.
Na verdade, é um passo natural e provavelmente até necessário com qualquer habilidade que você captar. Quando você começa a aprender algo, quanto mais você avança no conhecimento de uma habilidade e quanto mais a aplica, melhores seus resultados e parece que você estava indo direto ao domínio. O problema é que seu novo alvo não se torna a qualidade dos seus resultados, mas a quantidade de conhecimento que você acumulou em sua habilidade.
O verdadeiro domínio de uma habilidade envolve a compreensão de quando usá-la e quando não. O uso excessivo dessa habilidade é provavelmente a única maneira de desenvolver esse entendimento. Claro, você pode ler sobre isso, mas a leitura não substitui a experiência.
Por um lado, ler sobre padrões de design é um péssimo começo para IMHO. Ler sobre os princípios de design de OO, como SOLID e GRASP, é melhor. Depois de se familiarizar com eles, o estudo de padrões comuns de design é uma boa idéia, porque você verá como esses princípios podem ser aplicados para formar idiomas concretos.
Alega-se que, quando surgem padrões no uso de uma linguagem, a linguagem realmente não possui um recurso. Embora essa afirmação seja muito radical, há muita verdade nela. Portanto, eu sugiro que você olhe e brinque com outras linguagens para entender melhor os conceitos que está procurando empregar e também para aprender sobre novos conceitos. Uma lista restrita seria Squeak, Ruby e Lisp.
Quanto à Lista, minha recomendação pessoal é Estrutura e Interpretação de Programas de Computador , que me ensinaram muito sobre design, mostrando como é fácil criar soluções robustas para problemas complexos, com pouco mais que abstração clara e (des) composição em de maneira descendente.
Então, aqui está o que eu sugiro:
- escreva código (e tente entender o que o torna ruim)
- leia o código (e tente entender o que o torna bom)
- trocar conhecimento com outras pessoas. coloque suas idéias à prova.