Я працюю над проектом, який стосується фізичних пристроїв, і мене бентежить, як правильно назвати деякі класи цього проекту.
Враховуючи, що фактичні пристрої (датчики та приймачі) - це одне, а їх представлення в програмному забезпеченні - інше, я думаю про те, щоб назвати деякі класи з шаблоном назви суфікса "Інформація".
Наприклад, хоча a Sensorбуде класом, який представляє фактичний датчик (коли він фактично підключений до якогось робочого пристрою), SensorInfoвикористовувався б для представлення лише характеристик такого датчика. Наприклад, при збереженні файлу я б серіалізував a SensorInfoдо заголовка файлу, замість серіалізації a Sensor, який би навіть не мав сенсу.
Але зараз я розгублений, тому що в життєвому циклі об'єктів є середнє місце, де я не можу вирішити, чи слід використовувати те чи інше, або як отримати одне від іншого, або навіть, чи повинні обидва варіанти бути зведені лише до одного класу.
Крім того, занадто поширений приклад Employeeкласу, очевидно, є лише представленням реальної людини, але ніхто не запропонував би назвати клас EmployeeInfoзамість цього, наскільки я знаю.
Мовою, якою я працюю, є .NET, і ця модель іменування, як видається, є загальною у всіх рамках, наприклад для цих класів:
DirectoryіDirectoryInfoзаняття;FileіFileInfoзаняття;ConnectionInfoклас (без відповідногоConnectionкласу);DeviceInfoклас (без відповідногоDeviceкласу);
Отже, моє запитання: чи існує загальне обгрунтування використання цього шаблону іменування? Чи є випадки, коли є сенс мати пари імен ( Thingі ThingInfo) та інші випадки, коли існує лише ThingInfoклас або Thingклас без його аналога?
Foo, можливо, у вас є неіснуючий клас корисності Foos. Що стосується імен, важливим є послідовність в API та в ідеалі для API на платформі.
Employeeдесятки прикладів знаходять десятки або в Інтернеті, або в класичних книгах, поки я цього ще не бачив EmployeeInfo(можливо, тому що працівник - жива істота, а не технічна конструкція, така як з'єднання або файл). Але, погоджено, якщо клас EmployeeInfoзапропонувати в рамках проекту, я вважаю, що це може мати користь.

Infoсуфікс відрізняєstaticклас , що містить допоміжні методи від свого аналога з урахуванням стану. Це не «найкраща практика» як така; це лише спосіб, який придумала команда .NET для вирішення певної проблеми. Вони могли б так само легко придуматиFileUtilityіFile, алеFile.DoSomething()і ,FileInfo.FileNameздається, краще читати.