2011-07-28 21 views
44

¿Deberíamos tener un estándar de codificación de equipo que los nombres de las clases abstractas tengan el prefijo Abstract? p.ej.convención de nomenclatura de clase abstracta

public abstract class AbstractB implements B {} 
+6

Apuesto a que esta pregunta se cierra. Es muy subjetivo Yo voto sí, sin embargo. –

+0

Pero su interfaz B no debe llamarse InterfaceB por el mismo estándar – bstick12

+7

@bstick: ¡Nooooo! Las interfaces son tipos. ¡Nombrales qué son! –

Respuesta

62

Sí, de hecho si mira los javadocs de la biblioteca estándar en http://download.oracle.com/javase/6/docs/api/, encontrará que la lista de clases en el cuadro inferior izquierdo comienza con clases abstractas utilizando la convención de nomenclatura que ha mencionado en su pregunta.

AbstractAction 
AbstractAnnotationValueVisitor6 
AbstractBorder 
AbstractButton 
AbstractCellEditor 
AbstractCollection 
AbstractColorChooserPanel 
AbstractDocument 
AbstractDocument.AttributeContext 
AbstractDocument.Content 
AbstractDocument.ElementEdit 
AbstractElementVisitor6 
AbstractExecutorService 
AbstractInterruptibleChannel 
AbstractLayoutCache 
AbstractLayoutCache.NodeDimensions 
AbstractList 
AbstractListModel 
AbstractMap 
AbstractMap.SimpleEntry 
AbstractMap.SimpleImmutableEntry 
AbstractMarshallerImpl 
AbstractMethodError 
AbstractOwnableSynchronizer 
AbstractPreferences 
AbstractProcessor 
AbstractQueue 
AbstractQueuedLongSynchronizer 
AbstractQueuedSynchronizer 
AbstractScriptEngine 
AbstractSelectableChannel 
AbstractSelectionKey 
AbstractSelector 
AbstractSequentialList 
AbstractSet 
AbstractSpinnerModel 
AbstractTableModel 
AbstractTypeVisitor6 
AbstractUndoableEdit 
AbstractUnmarshallerImpl 
AbstractWriter 

Tome cualquiera de ellos, dicen que la primera, y comprobar su definición: AbstractAction. Efectivamente implementa Action que es de nuevo similar a su convención. Se subclases se nombran como: ClosedAction, MaximizeAction, etc.

+2

contador de ejemplo: java.util.Calendar – KGhatak

+0

@ Susam Pal - Entonces, la clase abstracta sin interfaz de implementación debería comenzar con 'Resumen'. Nota: Calander es una clase abstracta – KGhatak

5

Para legibilidad suena como una buena idea. Al leer el código, podrás saber de inmediato qué clase es. Mientras todos sigan el estándar, es bueno.

11

En general, cualquier tipo de estándar es algo bueno en un ambiente de equipo. De lo contrario, los miembros del equipo podrían nombrar las clases de tal manera que solo ellas entiendan y luego podría obtener una combinación de diferentes estilos de codificación de las personas, lo que generaría confusión.

+0

Esto es exactamente lo que pensé. Preferiría nombrarlos con el prefijo Abstract, pero lo más importante es seguir el estilo de codificación del equipo/proyecto. –

4

Los IDE modernos mostrarán texto descriptivo al pasar el mouse sobre un objeto. La prefijación es redundante en este caso.

+2

que requiere javadocs, una cosa completamente distinta para un equipo para luchar en batallas de estilo de codificación. –

2

No voy a decir sí o no en una respuesta, pero lo que usted elige, utilizar un buen static analysis tool para garantizarla.

2

Como con la mayoría de las preguntas de este tipo: "depende". Me gusta la coherencia y la claridad, así que si funciona para usted y su tienda, genial. Sin embargo, si tiene clases abstractas heredadas, entonces debería volver atrás y refactorizarlas a la misma convención de nomenclatura.

Cuestiones relacionadas