2010-02-12 12 views
5

मुझे एसीएल के पदानुक्रम का सर्वोत्तम प्रबंधन कहाँ करना चाहिए?एसीएल विरासत का प्रबंधन कहां करें?

मैं तीन संभावनाओं को देखने एसीएल के एक पदानुक्रम के प्रबंधन के लिए:

1) एसीएल खुद को पदानुक्रम प्रबंधित करें:

class Acl { 
    Acl parent; 
    // ... 
} 

2) पदानुक्रम का प्रबंधन करने के लिए एक अलग वृक्ष संरचना का निर्माण ।

3) एसीएल के लिए निहित पदानुक्रम के रूप में पहले से ही मौजूदा पदानुक्रम का उपयोग करना (जैसे फाइल सिस्टम में पहले से ही पदानुक्रम है)।

निम्नलिखित कोड एक मौजूदा पदानुक्रम उपयोग करने के लिए एक संभावना होगा:

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; 
    } 
} 

एक और दृष्टिकोण नियमों का उपयोग करने के लिए क्या और क्या करने के लिए श्रेणीबद्ध है परिभाषित करने के लिए हो सकता है।

मुझे लगता है कि एक स्पष्ट एसीएल पदानुक्रम बनाने के लिए समस्याग्रस्त हो सकता है जैसे कि 1) और 2) क्योंकि इस पदानुक्रम को आमतौर पर सिस्टम संरचना को प्रतिबिंबित करना होता है और यह नकल का एक रूप है।

सबसे अच्छा तरीका क्या है?

उत्तर

0

मैंने प्रदर्शन कारणों से गतिशील विरासत के खिलाफ निर्णय लिया। विरासत उपयोगकर्ताओं के लिए केवल एक सुविधा सुविधा होगी लेकिन इसे सीधे एसीएल में लागू नहीं किया जाएगा। परिवर्तन एसीएल को प्रचारित किया जाता है, लेकिन बाल एसीएल अपने माता-पिता को नहीं जानते हैं। ऐसा करने के लिए मैं मौजूदा पदानुक्रम (जैसे फ़ाइल सिस्टम में पदानुक्रम) का उपयोग करूंगा।