Saya bekerja di sebuah proyek yang berhubungan dengan perangkat fisik, dan saya bingung bagaimana cara menyebutkan beberapa kelas dengan benar dalam proyek ini.
Mengingat perangkat yang sebenarnya (sensor dan penerima) adalah satu hal, dan representasi mereka dalam perangkat lunak adalah hal lain, saya berpikir tentang penamaan beberapa kelas dengan pola nama akhiran "Info".
Sebagai contoh, sementara a Sensor
akan menjadi kelas untuk mewakili sensor aktual (ketika itu sebenarnya terhubung ke beberapa perangkat yang berfungsi), SensorInfo
akan digunakan untuk hanya mewakili karakteristik sensor tersebut. Sebagai contoh, setelah menyimpan file, saya akan membuat cerita bersambung SensorInfo
ke tajuk file, alih-alih membuat cerita bersambung Sensor
, yang jenisnya bahkan tidak masuk akal.
Tapi sekarang saya bingung, karena ada jalan tengah pada siklus hidup objek di mana saya tidak bisa memutuskan apakah saya harus menggunakan satu atau yang lain, atau bagaimana cara mendapatkan satu dari yang lain, atau bahkan apakah kedua varian harus benar-benar diciutkan menjadi hanya satu kelas.
Juga, Employee
kelas contoh yang terlalu umum jelas hanya merupakan representasi dari orang yang sebenarnya, tetapi tidak ada yang menyarankan untuk menyebutkan kelas EmployeeInfo
, sejauh yang saya tahu.
Bahasa yang saya gunakan adalah .NET, dan pola penamaan ini tampaknya umum di seluruh kerangka kerja, untuk contoh dengan kelas-kelas ini:
Directory
danDirectoryInfo
kelas;File
danFileInfo
kelas;ConnectionInfo
kelas (tanpaConnection
kelas koresponden );DeviceInfo
kelas (tanpaDevice
kelas koresponden );
Jadi pertanyaan saya adalah: apakah ada alasan umum untuk menggunakan pola penamaan ini? Apakah ada kasus di mana masuk akal untuk memiliki pasangan nama ( Thing
dan ThingInfo
) dan kasus lain di mana seharusnya hanya ada ThingInfo
kelas, atau Thing
kelas, tanpa pasangannya?
Foo
, Anda mungkin memiliki kelas utilitas non-instantiable Foos
. Ketika berbicara tentang penamaan, yang penting adalah konsistensi dalam API, dan idealnya di seluruh API pada platform.
Employee
contoh ditemukan oleh lusinan, baik online atau di buku-buku klasik, sementara saya belum melihat EmployeeInfo
(mungkin karena seorang karyawan adalah makhluk hidup, tidak konstruksi teknis seperti koneksi atau file). Tetapi, setuju, jika kelas EmployeeInfo
akan diusulkan dalam suatu proyek, saya percaya itu bisa digunakan.
Info
akhiran membedakanstatic
kelas yang berisi metode utilitas dari rekan stateful nya. Itu bukan "praktik terbaik"; itu hanya cara yang dibuat oleh tim .NET untuk memecahkan masalah tertentu. Mereka bisa saja dengan mudah membuatFileUtility
danFile
, tetapiFile.DoSomething()
danFileInfo.FileName
tampaknya membaca lebih baik.