Я та моя команда з науково-дослідної роботи підтримуємо велику кодову базу. Ми розділили свою бізнес-логіку на кілька пакетів. деякі з яких мають класи з однаковими назвами .
Як ви здогадаєтесь, імена конфліктують, коли обидва класи посилаються на один і той же файл Java.
Наприклад:
com.myapp.model (package)
- Device (class)
- ...
com.myapp.data (package)
- Device (class)
- ...
Ми мали дискусію щодо того, яка найкраща практика для лікування цих випадків, і з'явилися наступні варіанти:
1-й варіант
Перейменування класу, додавання префікса
ModelDevice DataDevice
2-й варіант
Використання повного пакета + назва класу, коли на них посилаються обидва
com.myapp.model.Device com.myapp.data.Device
Що правильніше з точки зору управління кодом та масштабованості?
в даний час ми змішуємо обидва підходи і починаємо суперечити
java.util.Date
і java.sql.Date
- тим більше java.sql.Date
, що це підклас java.util.Date
і так непогано вислизає з шарів даних (і не серіалізується добре на JSON).