Contoh yang Anda berikan sebenarnya baik-baik saja menurut saya. Anda mendeklarasikan kelas dalam , jadi sangat masuk akal untuk menyimpannya di file yang sama . Satu-satunya cara untuk mengatasi hal ini adalah membuat Items
kelas Anda menjadi kelas parsial dan membaginya menjadi beberapa file. Saya akan mempertimbangkan praktik buruk ini. Kebijakan umum saya untuk kelas bersarang adalah mereka harus berukuran kecil dan pribadi. Ada dua pengecualian untuk ini:
- Anda mendesain klaster kelas (lebih umum di tujuan-c), sehingga mungkin masuk akal untuk menggunakan pendekatan kelas parsial
- Anda memerlukan enum yang hanya digunakan dengan API publik dari kelas induk. Dalam hal ini saya lebih suka mengumumkan enum publik di dalam kelas induk daripada mencemari namespace saya. Enum yang menjadi "inner enum" secara efektif menghasilkan ruang lingkup yang didefinisikan dengan baik.
Jika Anda mengucapkan pertanyaan sedikit berbeda dan bertanya tentang "Haruskah saya menempatkan setiap kelas tingkat- namespace ke file sendiri" maka jawaban saya akan "ya".
Saat merancang kelas, kami menghormati Prinsip Tanggung Jawab Tunggal. Membaca kode menjadi jauh lebih mudah jika bentuknya mengikuti semantiknya, maka memecah file berdasarkan kelas adalah masuk akal.
Dari sudut pandang mekanik, memiliki file per kelas memiliki beberapa keunggulan. Anda dapat membuka banyak kelas secara bersamaan di jendela yang berbeda. Ini sangat penting karena tidak ada pengembang serius yang bekerja dengan kurang dari dua layar. Mampu memiliki lebih banyak konteks di depan kepala saya berarti saya dapat menyimpan lebih banyak konteks di kepala saya. (Sebagian besar IDE akan memungkinkan Anda untuk membuka file yang sama dua kali, tetapi saya menemukan ini aneh).
Aspek penting berikutnya adalah kontrol sumber dan penggabungan. Dengan menjaga kelas Anda terpisah, Anda menghindari banyak kerumitan ketika perubahan ke file yang sama dibuat karena kelas yang terpisah perlu diubah.