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()',然後在共享受限制的對象時,它會執行'返回新的NonModifiableRestrictedObject(obj);''NonModifiableRestrictedObject'是一個包裝器,它禁止除限制對象之外的所有方法方法。 – aioobe