Ich habe eine Implementierung in Java von Policy
Objekte erstellt, die für eine bestimmte Namespace
gelten.Karte mit einem mehrwertigen Schlüssel?
Sie sind in einer Struktur Map<Namespace,List<Policy>>
gespeichert, so dass ich die Richtlinien für einen bestimmten Namespace leicht durch Aufruf von .containsKey()
und .get()
auf der Karte abrufen können. Dazu habe ich equals()
und hashCode()
nach JVM-Regeln überschrieben. Hat gut funktioniert.
Nun sind die Anforderungen ändern sich, und ein Namespace
besteht plötzlich aus einer Liste von Werten, bei denen die Gleichheit Regel ist „einer der Werte müssen übereinstimmen“. Mit anderen Worten, wenn einer der in Namespace A
gespeicherten Werte mit einem der in Namespace B
gespeicherten Werte übereinstimmt, sind sie gleich.
Offensichtlich funktioniert das Überschreiben hashCode()
nicht mehr, da ich nicht weiß, welchen Wert der Code darstellen soll.
Wie kann ich mein Design am besten an die neue Gleichheitsregel anpassen? Sollte ich noch eine Map
verwenden oder gibt es ein Muster, das zu meinem Fall passt?
Danke, ich werde es auf jeden Fall versuchen. Der erste Blick ist hoffnungsvoll. – mvreijn