0
メソッドへのアクセスを制限すると、オブジェクトの作成者だけがアクセスできるように、私は、そのメソッドの一部へのアクセスを制限したい:固有のIDは、私は、オブジェクトを持っている
は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;
}
}
}
オブジェクトの作成者は、これを行うだろう:
UUID id = UUID.randomUUID();
RestrictedObject o = new RestrictedObject(id);
o.restrictedMethod(id);
これは良い練習かひどい考えですか?
代替案は、オブジェクトの不変なビューのみを共有することです。例えば、作成者は 'obj = new RestrictedObject()'を実行し、制限されたオブジェクトを共有するときには 'new NonModifiableRestrictedObject(obj);を返します;' NonModifiableRestrictedObject'は制限付きオブジェクトを除くすべてのメソッドを許可しないラッパーです方法。 – aioobe