Saya sedang mengerjakan alat kecil sebagai proyek mainan untuk menunjukkan perbedaan antara dua direktori, menunjukkan file / direktori mana yang ditambahkan, dihapus, dimodifikasi, dll.
Saya mencoba mewakili perubahan ini hanya sebagai objek 'ChangeItem', tanpa membedakan apakah itu file atau direktori. Namun, itu menciptakan banyak masalah, misalnya bagaimana menampilkannya di pohon, cara mengetahui siapa orang tua seorang anak, dll. Dan itu juga sangat tidak intuitif.
Saya kemudian membagi perubahan antara perubahan direktori dan perubahan file. Itu segera membuatnya sangat mudah untuk kode dan untuk memahami apa yang sedang terjadi. Sekarang lebih mudah untuk memilih semua file dalam direktori, dll.
Pertanyaan saya adalah, bagaimana orang bisa tahu apakah akan menggunakan abstraksi atau untuk lebih spesifik dalam kode mereka? Bagaimana Anda bisa tahu jika Anda memiliki terlalu banyak atau terlalu sedikit abstraksi?