Fiziksel cihazlarla ilgilenen bir projede çalışıyorum ve bu projedeki bazı sınıfların nasıl düzgün bir şekilde adlandırılacağı konusunda kafam karıştı.
Gerçek cihazlar (sensörler ve alıcılar) bir şey ve onların yazılımda temsil başka bir şey göz önüne alındığında , ben bazı sınıfları "Bilgi" soneki ad desen ile adlandırmayı düşünüyorum.
Örneğin, a Sensor
, gerçek sensörü temsil eden bir sınıf olsa da (gerçekte bazı çalışma cihazlarına bağlandığında), SensorInfo
sadece bu sensörün özelliklerini temsil etmek için kullanılır. Örneğin, dosya kaydetme üzerine, mantıklı bile olmayan bir tür SensorInfo
serileştirmek yerine, dosya başlığına serileştiririm Sensor
.
Ama şimdi kafam karıştı, çünkü nesnelerin yaşam döngüsünde bir ya da diğeri kullanmam gerekip gerekmediğini ya da diğerinden nasıl alacağımı ya da her iki varyantın aslında sadece bir sınıfa daraltılmasının gerekip gerekmediğine karar veremediğim bir orta alan var.
Ayrıca, çok yaygın olan örnek Employee
sınıf açık bir şekilde sadece gerçek kişinin bir temsilidir, ancak hiç kimse EmployeeInfo
bildiğim kadarıyla sınıfı adlandırmayı önermez.
Birlikte çalıştığım dil .NET'tir ve bu adlandırma modeli, bu sınıflarla örneklemek için çerçeve boyunca yaygın görünmektedir:
Directory
veDirectoryInfo
sınıflar;File
veFileInfo
sınıflar;ConnectionInfo
sınıf (muhabirConnection
sınıf olmadan );DeviceInfo
sınıf (muhabirDevice
sınıf olmadan );
Benim sorum şu: Bu adlandırma modelini kullanmanın ortak bir mantığı var mı? Bir çift isme ( Thing
ve ThingInfo
) sahip olmanın mantıklı olduğu durumlar ve muadili olmadan sadece ThingInfo
sınıfın veya sınıfın olması gereken diğer durumlar var Thing
mı?
Foo
olmayan bir yardımcı sınıfınız olabilir Foos
. Adlandırma söz konusu olduğunda, önemli olan API içinde ve ideal olarak platformdaki API'ler arasında tutarlılıktır.
Employee
örnekler henüz çevrimiçi veya klasik kitaplarda EmployeeInfo
bulunmuyor , henüz görmedim (belki bir çalışan yaşayan bir varlık olduğu için değil, bağlantı veya dosya gibi teknik bir yapı). Ancak, kabul edildi, eğer sınıf EmployeeInfo
bir projede önerilecekse, bunun kullanılabileceğini düşünüyorum.
Info
sonek ayırtstatic
kendi durum bilgisi karşılığından yardımcı yöntemleri ihtiva eden bir sınıf. Bu bir "en iyi uygulama" değildir; bu, .NET ekibinin belirli bir sorunu çözmek için geldiği bir yoldur. Bunlar aynı kolaylıkla sahip ile gelebilirFileUtility
veFile
ancakFile.DoSomething()
veFileInfo.FileName
daha iyi okumak gibi görünüyor.