Я працюю над проектом, який стосується фізичних пристроїв, і мене бентежить, як правильно назвати деякі класи цього проекту.
Враховуючи, що фактичні пристрої (датчики та приймачі) - це одне, а їх представлення в програмному забезпеченні - інше, я думаю про те, щоб назвати деякі класи з шаблоном назви суфікса "Інформація".
Наприклад, хоча 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
здається, краще читати.