Estoy trabajando en una herramienta pequeña como un proyecto de juguete para mostrar la diferencia entre dos directorios, mostrando qué archivos / directorios se agregaron, eliminaron, modificaron, etc.
Intenté representar estos cambios simplemente como objetos 'ChangeItem', sin distinción entre si era un archivo o directorio. Sin embargo, eso creó muchos problemas, por ejemplo, cómo mostrarlos en un árbol, cómo saber quién es el padre de un niño, etc. Y tampoco fue muy intuitivo.
Luego dividí los cambios entre cambios de directorio y cambios de archivo. Eso inmediatamente hizo que sea muy fácil codificar y comprender lo que estaba sucediendo. Ahora es mucho más simple seleccionar todos los archivos en un directorio, etc.
Mi pregunta es, ¿cómo se puede saber si usar la abstracción o ser más específico en su código? ¿Cómo puedes saber si tienes demasiada o muy poca abstracción?