2009-08-12 10 views
7

OK, quindi è facile per citarne un'interfaccia (o classe è per questo), se si può facilmente pensare di un sostantivo: User, Finestra, Database, Stream, eccInterfaccia di denominazione per gli aggettivi

Che dire di un aggettivo o concetto aggettivo? per esempio. qualcosa che ha un timestamp (HasTimestamp, Timestamped, Timestampable ...?) o qualcosa che viene monitorato o visto (Tracciabile, IsTracked, Watchable, IsWatched ...?)

risposta

7

Io tendo a utilizzare il suffisso -able. Ci sono molti buoni esempi di questo Convenzioni di denominazione anche nella libreria Java come ad esempio:

Per esempio qualcosa che ha tag sarebbe chiamato Taggable ai sensi della presente convenzione di denominazione, qualcosa che ha un timestamp è Loggablesince:

Timestamps sono tipicamente utilizzati per la registrazione degli eventi, nel qual caso ciascun evento in un log è contrassegnato da un timestamp. Nei filesystem, timestamp può significare la data/ora di creazione o modifica di un file.

+0

Anche se in genere seguo questo schema, "able" non sempre si adatta in modo pulito a quelli più complessi, ad esempio IDeterminesEmptyValue. Potrebbe essere ICanDetermineEmptyValue. IEmptyValueDeterminable non ha molto senso. –

+0

Mi piace il tuo ragionamento generale, ma "Loggable" è una parola troppo distante dal timestamp per i miei gusti. –

+0

@Jason: Devo ammettere che Loggable è un po * forzato * come nome :-) – dfa

0

È una buona domanda. Provo a dare un nome a tutte le mie interfacce e classi usando nomi. Quindi probabilmente finirò con nomi come ITrackingTarget, IObservee. Il timestamp è interessante. Forse ITimestamp stesso?

Utilizzando il pattern Visitor, quale chiamereste l'interfaccia che denota un oggetto che accetta un IVisitor?

+0

VisitableObject? Utente visitatore? – neuro

0

Tendo ad usare anche i nomi.

Per un oggetto che può essere aperto/chiuso, si può sempre utilizzare il verbose OpenableObject o OpenableInterface: si finisce con un sostantivo, anche se composto.

Come è verbose (e un po 'sciocco) Io tendo ad usare apribile invece di OpenableObject. Io uso OpenableInterface se voglio enfatizzare il fatto che si tratta di un'interfaccia.

Per gli oggetti che utilizzano il modello di dipendenze di inversione A volte uso il suffisso "utente": ImageUser, LoggerUser, ServiceXUser, ...

E 'meglio usare nomi, ma io preferisco la chiarezza sopra stretta aderenza al regola.

Problemi correlati