ข้อตกลงการตั้งชื่อแบบเฉพาะคลาส Java คลาส


10

ฉันต้องสร้างอะแดปเตอร์ระหว่างซอฟต์แวร์สองตัว (การจำลองด้วย mech, ไม่ใช่ cs) ThatThingสมมติว่าเรามีระดับที่ชื่อว่า ฉันต้องจัดการกับการใช้งานเฉพาะของผู้ขายต่าง ๆ เวอร์ชันเหล่านี้ไม่มีชื่อที่มีความหมาย (ต่างจาก eclipse helios, indigo เป็นต้น)

1. ฉันจะตั้งชื่อคลาสที่ควรแสดงหมายเลขเวอร์ชั่นได้อย่างไร

ผมพบว่าชั้นชอบThatThing_3_6_Impl, ThatThing_3_7_Implค่อนข้างอึดอัด

คำตอบ:


20

ใช้ชื่อแพ็คเกจอื่น

com.example.version36.ThatThing
com.example.version37.ThatThing

สิ่งนี้ช่วยให้คุณสามารถเก็บ "สิ่ง" ทั้งหมดไว้สำหรับรุ่นที่ระบุไว้ด้วยกัน

Apache Commons Lang ใช้รูปแบบนี้เมื่อปล่อยรุ่น "3" ใหม่


เนื่องจากคุณจะต้องสามารถอ้างอิงทั้งสองเวอร์ชันในคลาสเดียวฉันจะย่อชื่อให้สั้นลง:

ThatThing36
ThatThing37

ในกรณีของคุณนี้น่าจะพอช่วยอธิบายและก็เอาน่าเกลียดImplและ_'s


ฟังดูดีนะ ฉันจะคิดเกี่ยวกับมัน แม้ว่าในสถานที่ที่เวอร์ชันเหล่านี้จะรวมเข้าด้วยกันเราจำเป็นต้องใช้ชื่อที่มีคุณสมบัติครบถ้วนสำหรับการอ้างอิงใช่มั้ย
user802421

พวกเขามารวมกันได้อย่างไร คุณกำลังใช้การฉีดพึ่งพา? ทั้งสองวิธีตอบคำถามของคุณใช่
Jeremy Heiler

มีโมเดลข้อมูลหลายรุ่นที่เปลี่ยนแปลงระหว่างการเปิดตัว ฟีเจอร์ย่อยบางส่วนเฉพาะผสมกัน ไม่รองรับไลบรารีเลย (เช่นไม่มี di, ไม่มี codegen) นี่คือประวัติศาสตร์วิวัฒนาการซอฟต์แวร์ 11 ปี :(.
user802421

เสียใจ เป็นไปได้ไหมที่การversion37.ThatThingยืดversion36.ThatThingกล้ามเนื้อจะช่วยบรรเทาความเจ็บปวดได้บ้าง?
Jeremy Heiler

น่าเสียดายที่มันมีโครงสร้างที่แตกต่างและต้องการการเปลี่ยนแปลงที่ซับซ้อน มันเหมือนกับบิตแมปและกราฟิกแบบเวกเตอร์
user802421

2

มันไม่สำคัญมาก เลือกการประชุมที่แสดงทุกสิ่งที่คุณต้องการเพื่อแสดงและยึดติดกับมัน

คุณสามารถใช้ThatThing3_6สำหรับ "สิ่งที่ 3.6"

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.