Estou procurando maneiras diferentes de garantir que cada instância de uma determinada classe seja uma instância identificável exclusivamente.
Por exemplo, eu tenho uma Nameclasse com o campo name. Depois de ter um Nameobjeto nameinicializado para John Smith, não quero instanciar um objeto diferente.Name objeto também com o nome John Smith, ou, se ocorrer instanciação, desejo que uma referência ao objeto original seja passada de volta. do que um novo objeto.
Estou ciente de que uma maneira de fazer isso é ter uma fábrica estática que contenha Maptodos os objetos Name atuais e a fábrica verifique se um objeto com John Smith como o nome ainda não existe antes de retornar uma referência a umName objeto.
Outra maneira que eu poderia pensar é ter um mapa estático na Nameclasse e quando o construtor é chamado lançando uma exceção se o valor passado namejá estiver em uso em outro objeto, no entanto, estou ciente lançar exceções em um construtor é geralmente uma má ideia .
Existem outras maneiras de conseguir isso?
I'm aware that one way of doing this is to have a static factory that holds a Map...Então, por que você não quer fazer dessa maneira?