Sto lavorando a un progetto che si occupa di dispositivi fisici e sono stato confuso su come nominare correttamente alcune classi in questo progetto.
Considerando che i dispositivi effettivi (sensori e ricevitori) sono una cosa, e la loro rappresentazione nel software è un'altra, sto pensando di nominare alcune classi con il modello di nome del suffisso "Info".
Ad esempio, mentre a Sensorsarebbe una classe per rappresentare il sensore effettivo (quando è effettivamente collegato a un dispositivo funzionante), SensorInfoverrebbe utilizzato per rappresentare solo le caratteristiche di tale sensore. Ad esempio, dopo il salvataggio del file, vorrei serializzare un SensorInfonell'intestazione del file, anziché serializzare un Sensor, che non avrebbe nemmeno senso.
Ma ora sono confuso, perché c'è un punto centrale nel ciclo di vita degli oggetti in cui non posso decidere se dovrei usare l'uno o l'altro, o come ottenerne uno l'uno dall'altro, o anche se entrambe le varianti debbano effettivamente essere compresse in una sola classe.
Inoltre, la Employeeclasse di esempio fin troppo comune è ovviamente solo una rappresentazione della persona reale, ma nessuno suggerirebbe invece di nominare la classe EmployeeInfo, per quanto ne so.
Il linguaggio con cui sto lavorando è .NET e questo modello di denominazione sembra essere comune in tutto il framework, ad esempio con queste classi:
DirectoryeDirectoryInfoclassi;FileeFileInfoclassi;ConnectionInfoclasse (senzaConnectionclasse corrispondente );DeviceInfoclasse (senzaDeviceclasse corrispondente );
Quindi la mia domanda è: c'è una logica comune sull'uso di questo modello di denominazione? Ci sono casi in cui ha senso avere coppie di nomi ( Thinge ThingInfo) e altri casi in cui dovrebbe esistere solo la ThingInfoclasse, o la Thingclasse, senza la sua controparte?
Foo, è possibile che sia presente una classe di utilità non istantanea Foos. Quando si tratta di nominare, l'importante è la coerenza all'interno dell'API e idealmente tra le API sulla piattaforma.
Employeeesempi sono stati trovati dalle dozzine, sia online che nei libri classici, mentre non l'ho ancora visto EmployeeInfo(forse perché un dipendente è un essere vivente, non un costrutto tecnico come una connessione o un file). Ma, d'accordo, se la classe EmployeeInfodovesse essere proposta in un progetto, credo che potrebbe avere il suo uso.

Infosuffisso distingue unastaticclasse contenente metodi di utilità dalla sua controparte stateful. Non è una "best practice" in quanto tale; è solo un modo in cui il team di .NET ha ideato per risolvere un problema particolare. Avrebbero potuto escogitare altrettanto facilmenteFileUtilityeFile, maFile.DoSomething()eFileInfo.FileNamesembrano leggere meglio.