Mi equipo de I + D y yo mantenemos una gran base de código. Hemos dividido nuestra lógica de negocios en múltiples paquetes. algunos de los cuales tienen clases con nombres idénticos .
Como puede adivinar, los nombres entran en conflicto cuando se hace referencia a ambas clases en el mismo archivo Java.
Por ejemplo:
com.myapp.model (package)
- Device (class)
- ...
com.myapp.data (package)
- Device (class)
- ...
Tuvimos un debate sobre cuál es la mejor práctica para tratar estos casos y surgieron las siguientes opciones:
Primera opción
Cambiar el nombre de la clase, agregar un prefijo
ModelDevice DataDevice
2da opción
Usar el paquete completo + nombre de clase cuando se hace referencia a ambos
com.myapp.model.Device com.myapp.data.Device
¿Qué es más correcto en términos de gestión de código y escalabilidad?
Actualmente estamos mezclando ambos enfoques y comenzamos a tener inconsistencias
java.util.Date
y java.sql.Date
, especialmente porque java.sql.Date
es una subclase de java.util.Date
y se desliza muy bien fuera de las capas de datos (y no serializa muy bien a JSON).