Je recherche différentes façons de garantir que chaque instance d'une classe donnée est une instance identifiable de manière unique.
Par exemple, j'ai une Nameclasse avec le champ name. Une fois que j'ai un Nameobjet avec nameinitialisé à John Smith, je ne veux pas pouvoir instancier un autre Nameobjet également avec le nom de John Smith, ou si l'instanciation a lieu, je veux qu'une référence à l'objet d'origine soit renvoyée plutôt qu'un nouvel objet.
Je suis conscient qu'une façon de le faire est d'avoir une fabrique statique qui contient un Mapde tous les objets Name actuels et la fabrique vérifie qu'un objet avec John Smith comme nom n'existe pas déjà avant de renvoyer une référence à un Nameobjet.
Une autre façon dont je pourrais penser du haut de ma tête est d'avoir une carte statique dans la Nameclasse et lorsque le constructeur est appelé lançant une exception si la valeur transmise pour nameest déjà utilisée dans un autre objet, mais je suis conscient de lancer des exceptions chez un constructeur est généralement une mauvaise idée .
Y a-t-il d'autres moyens d'y parvenir?
I'm aware that one way of doing this is to have a static factory that holds a Map...Alors pourquoi tu ne veux pas le faire de cette façon?