Saya bekerja untuk perusahaan yang tidak memiliki praktik tinjauan kode. Untuk pengembangan diri dan memperluas wawasan saya, saya ingin menerima sedikit kritik yang membangun.
Sekarang saya mengusulkan untuk mengurai kasus berulang dengan banyak cabang.
Tugas
Pengguna bermaksud untuk menyeret file dengan mouse dari satu folder folder ke yang lain. Anda perlu menulis metode dispatcher yang memeriksa esensi acara dan kemungkinan memprosesnya, jika perlu, mengklarifikasi detailnya, lalu memanggil metode yang diinginkan atau menampilkan pesan tentang batasan.
Jika pengguna seret dan lepaskan dari satu folder ke folder dan folder lain ada di bagian yang berbeda, maka periksa copyability. Jika Anda dapat menyalin, maka salin. Kalau tidak, berikan pesan yang tidak bisa Anda salin. Itu tidak dapat disalin karena alasan: tidak ada izin tertulis; tidak cukup ruang kosong; sistem file tidak mendukung karakter dalam nama; nama file di folder tujuan akan memiliki jalur yang terlalu panjang; sudah ada file dengan nama yang sama di folder (buka dialog untuk menimpa file, jika pengguna setuju, lalu timpa).
Jika folder tujuan berada di partisi yang sama dengan file, maka pindahkan file tersebut. Tidak dapat bergerak: tidak ada izin tulis; path tujuan lengkap akan terlalu panjang, sudah ada file dengan nama yang sama di folder (buka dialog); file adalah sistem dan tidak dapat dihapus; sudah ada file dengan nama itu (buka dialog untuk menimpa file, jika pengguna setuju, lalu timpa).
Jika pengguna memindahkan file ke jendela lain, tetapi memiliki jalur yang sama, kemudian buat salinan file tersebut (Tambahkan "salin #" ke nama, di mana # adalah angka positif terkecil yang membuat file tersebut unik). Tidak dapat membuat salinan: tidak ada izin menulis; jalan penuh terlalu panjang; ruang kosong tidak cukup.
Jika pengguna ditransfer dengan tombol kanan, maka panggil dialog untuk memilih tindakan (salin / pindahkan / buat pintasan / buat salinan).
Jika pengguna merilis file di jendela yang sama (file rusak) dengan tombol kiri, maka jangan lakukan apa pun. Dan jika benar, maka sarankan untuk membuat salinan atau pintasan. Jika file tidak jatuh di jendela folder, maka jangan lakukan apa pun.
Seiring waktu, kondisi baru dapat muncul, tindakan baru, kondisi yang sudah dijelaskan untuk mengubah tindakan dapat berubah.
Solusi Diskusi
Saya menawarkan solusi kontroversial saya di Jawa, di mana saya mencapai tingkat tertinggi kedua bersarang jika:
public static void dispatchFileDropping( FileDragNDropEvent event ) {