Come denominare una sottoclasse che aggiunge una cosa piccola e dettagliata? [chiuso]

6

Qual è il modo più conciso (ma descrittivo) di nominare una sottoclasse che aggiunge solo una cosa secondaria specifica al genitore? Ho incontrato molto questo caso in WPF, dove a volte devo aggiungere una piccola funzionalità a un controllo immediato per casi specifici.

Esempio: TreeView non cambia l'oggetto Selected a destra -click , ma devo crearne uno che faccia nella mia applicazione.

Alcuni nomi possibili sono

  • TreeViewThatChangesSelectedItemOnRightClick (troppo wordy e forse difficile da leggere perché ci sono così tante parole concantenate insieme)
  • TreeView_SelectedItemChangesOnRightClick (leggermente più leggibile, ma ancora troppo prolisso e anche il trattino basso rompe il normale convenzione per i nomi delle classi)
  • TreeViewThatChangesSIOnRC (non ovvio acronimo),
  • ExtendedTreeView (più conciso, ma non descrive cosa sta facendo Inoltre, ho già trovato una classe chiamata questo nel libreria, che non voglio usare / modificare nella mia applicazione).
  • LouisTreeView , MyTreeView , ecc. (non descrive cosa sta facendo).

Sembra che non riesca a trovare un nome che suona bene. Cosa fai in situazioni come queste?

    
posta Louis Rhys 20.11.2012 - 13:14
fonte

3 risposte

5

Se si suppone che la tua applicazione utilizzi sia la versione originale, non sensibile alla destra e la tua versione migliorata, allora il nome deve assolutamente esprimere ciò che fa la classe derivata. Altrimenti chiunque navighi nella base di codice impazzirà nel capire qual è la differenza e dove si applica o meno. Qualcosa come RightSensitiveTreeView è probabilmente la scelta migliore, anche se è già goffo e diventerà molto più maldestro se hai bisogno di esprimere più di un comportamento esteso.

Ma se si utilizza esclusivamente la versione estesa, c'è poco danno nell'usare un nome euforico, persino orgoglioso come LouisTreeView - rimarrà accurato anche se si aggiungeranno ulteriori miglioramenti in seguito, dal momento che quelli presumibilmente saranno utilizzati ovunque. L'unica cosa che dovresti non fare è riutilizzare esattamente il nome originale e disambigarlo inserendolo in un percorso di pacchetto diverso. Questo è solo chiedere confusione.

(Disclaimer: proverbialmente, ci sono solo due cose veramente difficili nell'informatica - invalidare la cache e denominare le cose. Questa è la mia opinione, ma la gente probabilmente avanzerà con opinioni molto diverse.)

    
risposta data 20.11.2012 - 14:12
fonte
3

Per una singola classe come la sottoclasse TreeView che aggiunge solo una piccola quantità di funzionalità, probabilmente non è necessario provare troppo per fare un buon nome. Personalmente mi piacerebbe fare con CustomTreeView o simili. Quindi il bit "Personalizzato" reale può essere descritto in alcuni documenti o commenti sopra la definizione della classe.

Tuttavia supponiamo di avere diverse di queste classi, ciascuna estendendo TreeView in qualche modo. Quindi un nome generico come sopra non lo taglierebbe. Si potrebbe tentare di nominare ciascuna personalizzazione in modo descrittivo, ma le cose potrebbero andare a sud - "RightSensitiveTreeView" ad esempio è un po 'lungo per un nome di classe.

Se vuoi aggiungere bit di funzionalità a una classe, considera questo approccio: crea una sottoclasse nell'applicazione (o nella libreria personale / aziendale) e chiamala CustomTreeView o qualsiasi altra cosa. Per impostazione predefinita, fallo funzionare in modo identico a TreeView . Aggiungi proprietà / metodi che abilitano / disabilitano la funzionalità estesa - diciamo, una proprietà selectOnRightClick farebbe bene per la tua estensione. Quindi puoi aggiungere tutte le personalizzazioni che desideri alla sottoclasse di una tua sottoclasse e tutto il codice che utilizza la sottoclasse ha automaticamente accesso a tali personalizzazioni, con modifiche minime al codice.

    
risposta data 20.11.2012 - 16:32
fonte
2

Se si tratta solo di funzionalità generiche che saranno probabilmente richieste ogni volta che utilizzi un tale controllo, come la modifica di elementi con il tasto destro del mouse, di solito aggiungo Ex alla fine della mia classe per significare che è una versione estesa del classe. Ad esempio, TreeViewEx o TabControlEx

La parola utilizzata non ha molta importanza, ma cerco di mantenerla coerente in tutte le mie classi personalizzate e generica, così posso aggiungere altre funzionalità in un secondo momento, se necessario, senza dover rinominare la classe ( Ex , Extended , Custom , ecc.).

Naturalmente, se il controllo fa qualcosa di specializzato che è improbabile che venga ricercato in altri casi quando si usa quel controllo, allora aggiungerò un suffisso più descrittivo al nome del controllo.

Aggiungo anche la parola alla fine del nome del controllo ( TreeViewCustom invece di CustomTreeView ), quindi viene visualizzata automaticamente quando si tenta di utilizzare il controllo standard.

    
risposta data 20.11.2012 - 14:21
fonte

Leggi altre domande sui tag