it-swarm.asia

Paket isimleri tekil mi yoksa çoğul mu olmalı?

Genellikle, özellikle kütüphanelerde, paketler tek bir kavram etrafında düzenlenmiş sınıflar içerir. Örnekler: xml, sql, kullanıcı, config, db. Sanırım hepimiz bu paketler tekil doğru olduğunu doğal olarak hissediyorum.

com.myproject .xml. Eleman
Com.myproject .SQL. Bağlantı
Com.myproject .kullanıcı. Kullanıcı
Com.myproject .kullanım. UserFactory

Ancak, aslında tek bir türden uygulamalar koleksiyon - görevler, kurallar, işleyiciler, modeller vb. gibi bir paketim varsa, hangisi tercih edilir?

com.myproject .görevler. TakeOutGarbageTask
Com.myproject .görevler. DoTheDishesTask
Com.myproject .görevler. PaintTheHouseTask

veya

com.myproject .görev. TakeOutGarbageTask
Com.myproject .görevi. DoTheDishesTask
Com.myproject .görevi. PaintTheHouseTask

245
Nicole

Çoğulluğu homojen içerikli paketler için ve tekil içeriği heterojen içerikli paketler için kullanın.

Sınıf, veritabanı ilişkisine benzer. Kayıtları ilişkinin örnekleri olarak kabul edildiğinden, bir veritabanı ilişkisi tekil olarak adlandırılmalıdır. Bir ilişkinin işlevi, basit verilerden karmaşık bir kayıt oluşturmaktır.

Öte yandan bir paket veri soyutlaması değildir. Kod düzenlemesine ve adlandırma çatışmalarının çözümlenmesine yardımcı olur. Bir paket tekil olarak adlandırılmışsa, paketin her üyesinin paketin bir örneği olduğu anlamına gelmez; ilgili fakat heterojen kavramları içerir. Çoğul olarak adlandırılmışsa ( genellikleare ), paketin homojen kavramlar içermesini beklerim.

Örneğin, TaskCollection örneklerini içeren bir koleksiyon olduğu için, bir tür TasksCollection yerine Task olarak adlandırılmalıdır. com.myproject.task Adlı bir paket, içerilen her sınıfın bir görev örneği olduğu anlamına gelmez. TaskHandler, TaskFactory vb. Olabilir. Ancak com.myproject.tasks Adlı bir paket, tüm görevler için farklı türler içerecektir: TakeOutGarbageTask, DoTheDishesTask vb.

314
Matthew Rodatus

Bu muhtemelen belirli bir dile bağlıdır. .NET (C #) 'de, ad alanı türü bir ad çakışması olasılığı varsa kesinlikle çoğul olmalıdır (type name expected but namespace found hata). Ben bununla uğraştım, hoş değil ve kodun her yerinde aşırı niteleyici tip isimleri ile sonuçlanır. Örnek .

1
Den