Saya mencari cara yang berbeda untuk memastikan bahwa setiap instance dari kelas yang diberikan adalah instance yang dapat diidentifikasi secara unik.
Sebagai contoh, saya memiliki Namekelas dengan bidang name. Setelah saya memiliki Nameobjek dengan nameinisialisasi ke John Smith, saya tidak ingin dapat instantiate Nameobjek yang berbeda juga dengan nama sebagai John Smith, atau jika instantiasi terjadi saya ingin referensi ke objek asli untuk dilewatkan kembali bukan dari objek baru.
Saya sadar bahwa salah satu cara untuk melakukan ini adalah memiliki pabrik statis yang menampung Mapsemua objek Nama saat ini dan pabrik memeriksa bahwa sebuah objek dengan John Smith sebagai namanya belum ada sebelum meneruskan referensi ke Nameobyek.
Cara lain yang bisa saya pikirkan dari atas kepala saya adalah memiliki Peta statis di Namekelas dan ketika konstruktor disebut melempar pengecualian jika nilai yang diteruskan namesudah digunakan di objek lain, namun saya sadar melemparkan pengecualian dalam konstruktor umumnya merupakan ide yang buruk .
Apakah ada cara lain untuk mencapai ini?
I'm aware that one way of doing this is to have a static factory that holds a Map...Jadi mengapa Anda tidak ingin melakukannya dengan cara ini?