Je travaille dans un projet qui traite des périphériques physiques, et je ne sais pas comment nommer correctement certaines classes de ce projet.
Étant donné que les appareils réels (capteurs et récepteurs) sont une chose et que leur représentation dans le logiciel en est une autre, je pense à nommer certaines classes avec le modèle de nom de suffixe "Info".
Par exemple, alors que a Sensor
serait une classe pour représenter le capteur réel (lorsqu'il est réellement connecté à un appareil en fonctionnement), SensorInfo
serait utilisé pour représenter uniquement les caractéristiques d'un tel capteur. Par exemple, lors de l'enregistrement du fichier, je sérialiserais un SensorInfo
dans l'en-tête du fichier, au lieu de sérialiser un Sensor
, ce qui n'aurait même pas de sens.
Mais maintenant, je suis confus, car il y a un point médian sur le cycle de vie des objets où je ne peux pas décider si je dois utiliser l'un ou l'autre, ou comment les obtenir les uns des autres, ou même si les deux variantes doivent en fait être réduites à une seule classe.
De plus, l'exemple de Employee
classe trop commun n'est évidemment qu'une représentation de la personne réelle, mais personne ne suggérerait de nommer la classe à la EmployeeInfo
place, pour autant que je sache.
Le langage avec lequel je travaille est .NET, et ce modèle de dénomination semble être commun dans tout le framework, par exemple avec ces classes:
Directory
etDirectoryInfo
cours;File
etFileInfo
cours;ConnectionInfo
classe (sansConnection
classe correspondante );DeviceInfo
classe (sansDevice
classe correspondante );
Ma question est donc la suivante: existe-t-il une justification commune à l'utilisation de ce modèle de dénomination? Y a-t-il des cas où il est logique d'avoir des paires de noms ( Thing
et ThingInfo
) et d'autres cas où il ne devrait exister que la ThingInfo
classe, ou la Thing
classe, sans son homologue?
Foo
, vous pouvez avoir une classe utilitaire non instanciable Foos
. Lorsqu'il s'agit de nommer, l'important est la cohérence au sein de l'API, et idéalement entre les API de la plate-forme.
Employee
des dizaines sont trouvés par des dizaines, en ligne ou dans des livres classiques, alors que je ne les ai pas EmployeeInfo
encore vus (peut-être parce qu'un employé est un être vivant, pas une construction technique comme une connexion ou un fichier). Mais, d'accord, si la classe EmployeeInfo
devait être proposée dans un projet, je pense qu'elle pourrait avoir son utilité.
Info
suffixe distingue unestatic
classe contenant des méthodes utilitaires de son homologue avec état. Ce n'est pas une "meilleure pratique" en tant que telle; c'est juste un moyen que l'équipe .NET a trouvé pour résoudre un problème particulier. Ils auraient pu tout aussi facilement trouverFileUtility
etFile
, maisFile.DoSomething()
etFileInfo.FileName
semblent mieux lire.