ich ein Objekt haben, und ich möchte den Zugriff auf einige seiner Methoden beschränken, so dass nur der Schöpfer des Objekts kann auf sie zugreifen:Eindeutige ID Zugriff auf Methoden zu beschränken
class RestrictedObject {
private final UUID id;
public RestrictedObject(UUID id) {
this.id = id;
}
public boolean restrictedMethod(UUID anId) {
if (anId.equals(this.id)) {
//do stuff
return true;
} else {
return false;
}
}
}
des Schöpfers Objekt würde dies tun :
UUID id = UUID.randomUUID();
RestrictedObject o = new RestrictedObject(id);
o.restrictedMethod(id);
Wäre das gute Praxis oder eine schreckliche Idee?
Eine (möglicherweise bessere) Alternative wäre, nur unveränderliche Ansichten des Objekts zu teilen. Zum Beispiel würde der Ersteller "obj = new RestrictedObject()" tun und dann, wenn er das eingeschränkte Objekt teilt, "newModifyableRestrictedObject (obj)" zurückgeben, wobei "NonModiableRestrictedObject" ein Wrapper ist, der alle Methoden außer dem restricted nicht zulässt Methode. – aioobe