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 Name
classe avec le champ name
. Une fois que j'ai un Name
objet avec name
initialisé à John Smith, je ne veux pas pouvoir instancier un autre Name
objet é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 Map
de 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 Name
objet.
Une autre façon dont je pourrais penser du haut de ma tête est d'avoir une carte statique dans la Name
classe et lorsque le constructeur est appelé lançant une exception si la valeur transmise pour name
est 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?