Estou trabalhando em uma pequena ferramenta como um projeto de brinquedo para mostrar a diferença entre dois diretórios, mostrando quais arquivos / diretórios foram adicionados, removidos, modificados etc.
Eu estava tentando representar essas alterações como objetos simplesmente 'ChangeItem', sem distinção entre se era um arquivo ou diretório. No entanto, isso criou muitos problemas, por exemplo, como exibi-los em uma árvore, como saber quem é o pai de uma criança, etc. E também foi muito pouco intuitivo.
Em seguida, divido as alterações entre as alterações de diretório e de arquivo. Isso imediatamente tornou muito fácil codificar e entender o que estava acontecendo. Agora é muito mais simples selecionar todos os arquivos em um diretório, etc.
Minha pergunta é: como alguém pode saber se deve usar abstração ou se é mais específico em seu código? Como você pode saber se possui muita ou pouca abstração?