remove - poner titulo android studio
Nombre de la actividad de Android (2)
En general, la mejor manera de nombrar los componentes de la aplicación de Android es agregar su "tipo de componente" como sufijo. Ejemplo: -
-
LevelActivity
(LevelActivity extiende la actividad) -
InboxUpdateService
(InboxUpdateService extiende el servicio) -
ContactsContentProvider
(ContactsContentProvide extiende ContentProvider) -
SMSBroadcastReceiver
(SMSBroadcastReceiver extiende BroadcastReceiver)
Al nombrar usando el método anterior, habrá pocas posibilidades de perder de vista cuando esté trabajando en un gran flujo de código con muchos nombres similares en su aplicación.
Por lo tanto, nombre sus actividades con el sufijo "Actividad".
Y el nombre de la clase que proporciona datos a su LevelActivity como Level
.
En Contradicción a la segunda parte de la respuesta de Pascal MARTIN, también puedes usar LevelActivity
y LevelInfo
juntos. Porque ofrecen una clara diferencia como se cita a continuación:
Distinguir los nombres de tal manera que el lector sepa lo que ofrecen las diferencias - Robert. C. Martin, autor de Clean Code
Pero el sufijo es a menudo redundante en base cognitiva. Usar solo la palabra Level
enfatiza claramente que la clase Level
ofrece información sobre el Nivel. Por lo tanto, use el Level
para la clase que proporciona datos sobre el nivel.
NOTA: Si está utilizando sufijos, elija una palabra por concepto. Por ejemplo: si está utilizando la Info
del sufijo para identificar las clases que ofrecen información, solo se debe usar la información (no Data
o Model
) en toda la aplicación para evitar confusiones.
Me encuentro con cada vez más conflictos de nombres entre las actividades de Android y otras clases. Me preguntaba si podrías decirme cómo evitas esto. Lamentablemente, mis problemas de nombres en particular no están cubiertos en las preguntas relacionadas sobre SO.
Primer ejemplo
Tengo una actividad que muestra un nivel del juego. Sin embargo, los datos requeridos para ese nivel (ilustraciones de fondo, entidades, etc.) se almacenan en una clase separada. Naturalmente, llamaría a este último Level
clase. Sin embargo, también llamaría la actividad Level
, porque muestra niveles.
Segundo ejemplo
Tengo una actividad que reproduce una escena de corte. Básicamente muestra varias imágenes en una fila. La información de qué imagen se muestra durante cuánto tiempo se almacena en una clase separada. Como en el caso anterior, naturalmente llamaría a ambas clases CutScene
.
¿Cómo resolverías estos problemas de nombres? Nombra las actividades LevelActivity
y CutSceneActivity
? ¿Nombre las clases de representación LevelModel
y CutSceneModel
? ¿Algo más?
Resuelvo esos problemas prefijando o postfijando las clases con su "tipo", como sugeriste al final de tu pregunta:
-
LevelActivity
,GameActivity
,MainActivity
, ... -
CommentsListAdapter
, ... -
CheckNewCommentsService
, ... - y así.
Pero generalmente hago una exección para las clases modelo, que son los objetos que contienen esos datos: seguiría LevelModel
mi clase de modelo Level
, y no LevelModel
, para indicar que estoy manipulando y trabajando con un Nivel.
Otra solución (más larga para escribir ^^) podría ser usar nombres completos (consulte here ) al hacer referencia a sus clases:
-
com.something.yourapp.activity.Level
-
com.something.yourapp.model.Level
Con esto, siempre sabes qué clase se usa realmente.