Verdiğiniz örnek aslında benim görüşüme göre iyidir. İç sınıfları ilan ediyorsunuz , bu yüzden onları aynı dosyada tutmak kusursuz . Bunun etrafındaki tek yol, Items
sınıfınızı kısmi bir sınıf yapmak ve onu birden fazla dosyaya bölmektir. Bu kötü uygulamayı düşünürdüm. İç içe geçmiş sınıflar için genel politikam, küçük ve özel olmaları gerektiğidir. Bunun iki istisnası var:
- Bir sınıf kümesi tasarlıyorsunuz (objektif-c'de daha yaygın), bu nedenle kısmi sınıf yaklaşımını kullanmak mantıklı olabilir.
- yalnızca üst sınıfın genel API'si ile birlikte kullanılan bir enuma ihtiyacınız vardır. Bu durumda, ad alanımı kirletmek yerine üst sınıf içinde ilan edilmiş bir enum olmasını tercih ederim. Enum bir "iç enum" olmak etkili bir şekilde iyi tanımlanmış bir kapsam verilmesine neden olur.
Eğer soruyu biraz farklı söyler ve "Her ad alanı- düzey sınıfını kendi dosyasına yerleştirmeli miyim?" Diye sorarsanız cevabım "evet" olur.
Sınıfları tasarlarken, Tek Sorumluluk İlkesine saygı duyuyoruz. Şekli semantiklerini takip ederse kod okumak çok daha kolay hale gelir, bu nedenle dosyaları sınıfa bölmek mantıklıdır.
Mekanik açıdan, sınıf başına bir dosyaya sahip olmanın çeşitli avantajları vardır. Aynı anda birden fazla sınıfı farklı pencerelerde açabilirsiniz. Bu, özellikle ciddi bir geliştirici iki ekrandan daha az ekranla çalışmadığı için önemlidir. Daha bağlam bilgisine sahip olabilme ön kafamdan ben daha fazla bağlam tutmak anlamına gelir içinde kafamda. (Çoğu IDE aynı dosyayı iki kez açmanıza izin verir, ancak bunu garip buluyorum).
Bir sonraki önemli husus, kaynak kontrolü ve birleşmedir. Sınıflarınızı ayrı tutarak, aynı dosyada değişiklik yapıldığında çok fazla zorluk çekmezsiniz, çünkü ayrı sınıfların değiştirilmesi gerekir.