Sono spesso in una situazione in cui ho un concetto rappresentato da un'interfaccia o una classe e quindi ho una serie di sottoclassi/sottointerfacce che la estendono.Best practice per denominare sottoclassi
Per esempio: Un generico "DoiGraphNode" A "DoiGraphNode" che rappresenta una risorsa A "DoiGraphNode" che rappresenta una risorsa Java A "DoiGraphNode" con un percorso associato, ecc, ecc
I puoi pensare a tre convenzioni di denominazione e apprezzare i commenti su come scegliere.
Opzione 1: iniziare sempre con il nome del concetto.
Così: DoiGraphNode, DoiGraphNodeResource, DoiGraphNodeJavaResource, DoiGraphNodeWithPath, ecc
Pro: E 'molto chiaro che cosa ho a che fare con, è facile vedere tutte le opzioni che ho
Contro: Non molto naturale? Tutto sembra uguale?
Opzione 2: inserire gli oggetti speciali all'inizio.
Così: DoiGraphNode, ResourceDoiGraphNode, JavaResourceDoiGraphNode, PathBaseDoiGraphNode, ecc, ecc
Pro: E 'molto chiaro quando lo vedo nel codice
Con: Trovare potrebbe essere difficile, soprattutto se non ricordo il nome, la mancanza di coerenza visiva
Opzione 3: Mettere la roba speciale e rimuovere una parte del testo ridondante
Così: DoiGraphNode, ResourceNode, JavaResourceNode, GraphNodeWithPath
Pro: Non è così molto da scrivere e leggere Con: Sembra che cr * p, molto incoerente, può entrare in conflitto con altri nomi
Avrei anche scelto la terza opzione. Nei primi due c'è il pericolo di finire in un "labirinto di nomi lunghi e tortuosi, tutti leggermente diversi" in cui si fa fatica a leggerli e persino a ricordare quale nome corrisponde a quale concetto. – starblue