私と私のR&Dチームは、大規模なコードベースを維持しています。ビジネスロジックを複数のパッケージに分割しました。そのうちのいくつかは持っている同じ名前のクラスを。
ご想像のとおり、両方のクラスが同じJavaファイルで参照されている場合、名前は競合します。
例えば:
com.myapp.model (package)
- Device (class)
- ...
com.myapp.data (package)
- Device (class)
- ...
これらのケースを処理するためのベストプラクティスは何かについて議論があり、次のオプションが考えられました。
最初のオプション
クラスの名前を変更し、接頭辞を追加する
ModelDevice DataDevice
2番目のオプション
両方が参照されている場合の完全なパッケージ+クラス名の使用
com.myapp.model.Device com.myapp.data.Device
コード管理とスケーラビリティの点でより正しいものは何ですか?
現在、両方のアプローチを組み合わせており、矛盾が生じ始めています
java.util.Date
、そしてjava.sql.Date
特に- java.sql.Date
のサブクラスでjava.util.Date
あり、データレイヤーからうまく抜け出ている(そしてJSONにうまくシリアライズされない)ので、あなたにはわかりません。