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 Sensorserait une classe pour représenter le capteur réel (lorsqu'il est réellement connecté à un appareil en fonctionnement), SensorInfoserait utilisé pour représenter uniquement les caractéristiques d'un tel capteur. Par exemple, lors de l'enregistrement du fichier, je sérialiserais un SensorInfodans 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 Employeeclasse trop commun n'est évidemment qu'une représentation de la personne réelle, mais personne ne suggérerait de nommer la classe à la EmployeeInfoplace, 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:
DirectoryetDirectoryInfocours;FileetFileInfocours;ConnectionInfoclasse (sansConnectionclasse correspondante );DeviceInfoclasse (sansDeviceclasse 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 ( Thinget ThingInfo) et d'autres cas où il ne devrait exister que la ThingInfoclasse, ou la Thingclasse, 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.
Employeedes dizaines sont trouvés par des dizaines, en ligne ou dans des livres classiques, alors que je ne les ai pas EmployeeInfoencore 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 EmployeeInfodevait être proposée dans un projet, je pense qu'elle pourrait avoir son utilité.

Infosuffixe distingue unestaticclasse 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 trouverFileUtilityetFile, maisFile.DoSomething()etFileInfo.FileNamesemblent mieux lire.