2009-08-12 10 views
7

OK, así que es fácil de nombrar una interfaz (o clase para el caso) si se puede pensar fácilmente de un sustantivo: Usuario, Ventana, base de datos, corriente, etc.interfaz de nomenclatura para los adjetivos

¿Qué pasa con un adjetivo o concepto adjetivo? p.ej. algo que tiene una marca de tiempo (HasTimestamp, Timestamped, Timestampable ...?) o algo que se rastrea o mira (Trackable, IsTracked, Watchable, IsWatched ...?)

Respuesta

7

Tiendo a usar -able sufijo. Hay muchos buenos ejemplos de ello las convenciones de nomenclatura también en la biblioteca de Java tales como:

Por ejemplo algo que tiene etiquetas sería nombrado Taggable bajo esta convención de nombres, algo que tiene una marca de tiempo es Loggablesince:

marcas de tiempo se suele utilizar para eventos de registro, en cuyo caso, cada evento en un registro está marcado con una marca de tiempo. En los sistemas de archivos, la marca de tiempo puede significar la fecha/hora almacenada de creación o modificación de un archivo.

+0

Aunque generalmente también sigo este patrón, "capaz" no siempre se ajusta limpiamente a algunos más complejos, por ejemplo, IDeterminesEmptyValue. Podría ser ICanDetermineEmptyValue. IEmptyValueDeterminable no tiene tanto sentido. –

+0

Me gusta su razonamiento general, pero "Loggable" es una palabra demasiado distante de la marca de tiempo para mi gusto. –

+0

@Jason: Debo admitir que Loggable está un poco * forzado * como nombre :-) – dfa

0

Es una buena pregunta. Intento nombrar todas mis interfaces y clases usando sustantivos. Así que probablemente terminaré nombres como ITrackingTarget, IObservee. La marca de tiempo es interesante. Tal vez ITimestamp sí mismo?

Utilizando el patrón Visitor, ¿cómo llamaría a la interfaz que denota un objeto que acepta un IVisitor?

+0

VisitableObject? VisitorUser? – neuro

0

Tiendo a utilizar sustantivos también.

Para un objeto que puede ser abierto/cerrado, siempre se puede utilizar la verbosa OpenableObject o OpenableInterface: Se termina con un sustantivo, aunque compuesta.

Como es prolijo (y un poco tonto) que tienden a utilizar que puede abrirse en lugar deOpenableObject. Yo uso OpenableInterface si quiero enfatizar el hecho de que es una interfaz.

Para los objetos que utilizan el patrón de inversión de las dependencias a veces uso el sufijo "Usuario": ImageUser, LoggerUser, ServiceXUser, ...

Es mejor usar los nombres, pero yo prefiero claridad sobre el cumplimiento estricto de la regla.

Cuestiones relacionadas