Moi et mon équipe R&D maintenons une grande base de code. Nous avons divisé notre logique métier en plusieurs packages. certains ont des classes avec des noms identiques .
Comme vous pouvez le deviner, les noms entrent en conflit lorsque les deux classes sont référencées dans le même fichier Java.
Par exemple:
com.myapp.model (package)
- Device (class)
- ...
com.myapp.data (package)
- Device (class)
- ...
Nous avons eu un débat sur la meilleure pratique pour traiter ces cas et les options suivantes ont été proposées:
1ère option
Renommer la classe, ajouter un préfixe
ModelDevice DataDevice
2e option
Utilisation du package complet + nom de classe lorsque les deux sont référencés
com.myapp.model.Device com.myapp.data.Device
Quoi de plus correct en termes de gestion de code et d'évolutivité?
nous mélangeons actuellement les deux approches et commençons à avoir des incohérences
java.util.Date
et java.sql.Date
- d'autant plus qu'il java.sql.Date
s'agit d'une sous-classe de java.util.Date
et se glisse donc bien hors des couches de données (et ne se sérialise pas bien en JSON).