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), SensorInfosadece bu sensörün özelliklerini temsil etmek için kullanılır. Örneğin, dosya kaydetme üzerine, mantıklı bile olmayan bir tür SensorInfoserileş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 Employeesınıf açık bir şekilde sadece gerçek kişinin bir temsilidir, ancak hiç kimse EmployeeInfobildiğ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:
DirectoryveDirectoryInfosınıflar;FileveFileInfosınıflar;ConnectionInfosınıf (muhabirConnectionsınıf olmadan );DeviceInfosınıf (muhabirDevicesınıf olmadan );
Benim sorum şu: Bu adlandırma modelini kullanmanın ortak bir mantığı var mı? Bir çift isme ( Thingve ThingInfo) sahip olmanın mantıklı olduğu durumlar ve muadili olmadan sadece ThingInfosınıfın veya sınıfın olması gereken diğer durumlar var Thingmı?
Fooolmayan 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 EmployeeInfobulunmuyor , 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 EmployeeInfobir projede önerilecekse, bunun kullanılabileceğini düşünüyorum.

Infosonek ayırtstatickendi 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 gelebilirFileUtilityveFileancakFile.DoSomething()veFileInfo.FileNamedaha iyi okumak gibi görünüyor.