titulo studio remove poner one from cambiar bar agregar activity android android-activity naming-conventions naming

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.