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 Sensorakan menjadi kelas untuk mewakili sensor aktual (ketika itu sebenarnya terhubung ke beberapa perangkat yang berfungsi), SensorInfoakan digunakan untuk hanya mewakili karakteristik sensor tersebut. Sebagai contoh, setelah menyimpan file, saya akan membuat cerita bersambung SensorInfoke 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, Employeekelas 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:
DirectorydanDirectoryInfokelas;FiledanFileInfokelas;ConnectionInfokelas (tanpaConnectionkelas koresponden );DeviceInfokelas (tanpaDevicekelas 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 ( Thingdan ThingInfo) dan kasus lain di mana seharusnya hanya ada ThingInfokelas, atau Thingkelas, 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.
Employeecontoh 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 EmployeeInfoakan diusulkan dalam suatu proyek, saya percaya itu bisa digunakan.

Infoakhiran membedakanstatickelas 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 membuatFileUtilitydanFile, tetapiFile.DoSomething()danFileInfo.FileNametampaknya membaca lebih baik.