5
我應該在哪裏最好地管理ACL層次結構?在哪裏管理ACL繼承?
我看到三種可能性來管理ACL的層次結構:
1)上的ACL本身管理的層級:
class Acl {
Acl parent;
// ...
}
2)構建一個單獨的樹結構來管理層級。
3)使用已有的層次結構作爲ACL的隱式層次結構(如文件系統已具有層次結構)。
下面的代碼將是一個可能使用現有的層次:
interface AclHolder {
Acl getAcl();
}
public class Folder implements AclHolder {
private AclHolder parent;
private Acl acl;
@Override
public Acl getAcl(){
return acl==null ? parent.getAcl() : acl;
}
}
另一種方法可以是使用規則來定義什麼是分層次的,以什麼。
我認爲創建一個明確的ACL層次結構可能會有問題,如1)和2),因爲此層次結構通常必須反映系統結構並且是一種重複形式。
什麼是最好的方法?