ฉันและทีม R&D ของฉันรักษา codebase ขนาดใหญ่ เราได้แบ่งตรรกะทางธุรกิจของเราออกเป็นหลายแพ็คเกจ บางแห่งที่มีชั้นเรียนที่มีชื่อเหมือน
ในขณะที่คุณสามารถเดาได้ว่าชื่อนั้นขัดแย้งกันเมื่อมีการอ้างอิงทั้งสองคลาสในไฟล์ Java เดียวกัน
ตัวอย่างเช่น:
com.myapp.model (package)
- Device (class)
- ...
com.myapp.data (package)
- Device (class)
- ...
เราได้ถกเถียงกันว่าอะไรคือวิธีปฏิบัติที่ดีที่สุดในการรักษากรณีเหล่านี้และตัวเลือกต่อไปนี้เกิดขึ้น:
ตัวเลือกที่ 1
การเปลี่ยนชื่อชั้นเรียนโดยเพิ่มคำนำหน้า
ModelDevice DataDevice
ตัวเลือกที่ 2
ใช้ชื่อเต็ม package + class เมื่อทั้งคู่ถูกอ้างอิง
com.myapp.model.Device com.myapp.data.Device
มีอะไรที่ถูกต้องมากขึ้นในแง่ของการจัดการรหัสและความยืดหยุ่น?
ขณะนี้เรากำลังผสมทั้งแนวทางและเริ่มมีความไม่สอดคล้องกัน
java.util.Date
และjava.sql.Date
โดยเฉพาะอย่างยิ่งเนื่องจากjava.sql.Date
เป็นคลาสย่อยjava.util.Date
และหลุดออกมาจากชั้นข้อมูลอย่างมาก (และไม่ได้เรียงลำดับเป็นอย่างดีกับ JSON)