Я и моя команда R & D поддерживаем большую базу кода. Мы разделили нашу бизнес-логику на несколько пакетов. некоторые из которых имеют классы с одинаковыми именами .
Как вы можете догадаться, имена конфликтуют, когда на оба класса ссылаются в одном и том же файле 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).