Ja i mój zespół R&D utrzymujemy dużą bazę kodów. Podzieliliśmy naszą logikę biznesową na wiele pakietów. niektóre z nich mają klasy o identycznych nazwach .
Jak można się domyślić, nazwy są sprzeczne, gdy obie klasy są przywoływane w tym samym pliku Java.
Na przykład:
com.myapp.model (package)
- Device (class)
- ...
com.myapp.data (package)
- Device (class)
- ...
Przeprowadziliśmy debatę na temat najlepszych praktyk w leczeniu tych przypadków i pojawiły się następujące opcje:
1. opcja
Zmiana nazwy klasy, dodanie przedrostka
ModelDevice DataDevice
2. opcja
Używanie pełnego pakietu + nazwy klasy, gdy oba są przywoływane
com.myapp.model.Device com.myapp.data.Device
Co jest bardziej poprawnego pod względem zarządzania kodem i skalowalności?
obecnie łączymy oba podejścia i zaczynamy mieć niespójność
java.util.Date
i java.sql.Date
- zwłaszcza, że java.sql.Date
jest podklasą java.util.Date
i tak ładnie wymyka się z warstw danych (i nie ładnie serializuje JSON).