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