ฉันกำลังมองหาวิธีที่แตกต่างเพื่อให้แน่ใจว่าแต่ละอินสแตนซ์ของคลาสที่กำหนดนั้นเป็นอินสแตนซ์ที่ระบุตัวตนไม่ซ้ำกัน
ตัวอย่างเช่นผมมีเรียนกับสนามName nameเมื่อฉันมีNameวัตถุที่nameเริ่มต้นให้กับ John Smith ฉันไม่ต้องการที่จะสามารถสร้างอินสแตนซ์ของNameวัตถุที่แตกต่างด้วยชื่อเป็น John Smith หรือถ้าการสร้างอินสแตนซ์เกิดขึ้นฉันต้องการให้มีการอ้างอิงไปยังวัตถุเดิม กว่าวัตถุใหม่
ฉันทราบว่าวิธีหนึ่งในการทำเช่นนี้คือการมีโรงงานแบบคงที่ที่มีMapวัตถุชื่อปัจจุบันทั้งหมดและโรงงานตรวจสอบว่าวัตถุที่มี John Smith เป็นชื่อที่ไม่มีอยู่ก่อนส่งกลับการอ้างอิงไปยังNameวัตถุ.
วิธีที่ฉันสามารถคิดออกด้านบนของหัวของฉันก็คือการมีแผนที่แบบคงที่ในNameระดับและเมื่อสร้างเรียกว่าการขว้างปายกเว้นถ้าค่าที่ส่งไปในnameที่มีอยู่แล้วในการใช้งานในวัตถุอื่น แต่ผมทราบข้อยกเว้นการขว้างปา ในตัวสร้างโดยทั่วไปความคิดที่ดี
มีวิธีอื่นในการบรรลุเป้าหมายนี้หรือไม่?
I'm aware that one way of doing this is to have a static factory that holds a Map...ดังนั้นทำไมคุณไม่ต้องการที่จะทำแบบนี้?