2010-07-24 5 views
14

जाहिर this key-oriented access-protection pattern:इस कुंजी-उन्मुख पहुंच-सुरक्षा पैटर्न को कैसे नामित करें?

class SomeKey { 
    friend class Foo; 
    SomeKey() {} 
    // possibly non-copyable too 
}; 

class Bar { 
public: 
    void protectedMethod(SomeKey); // only friends of SomeKey have access 
}; 

... इस प्रकार मैं एक अच्छा एक के लिए यह इसलिए हम अपने जीभ को तोड़ने के बिना यह उल्लेख कर सकते हैं प्राप्त करना चाहते हैं अभी तक एक ज्ञात नाम नहीं है,। सुझाव?

यह होना चाहिए:

  • संक्षिप्त
  • पहुँच सुरक्षा की मंशा व्यक्त
  • आदर्श मतलब है कि कोई प्रॉक्सी की आवश्यकता है
+0

अच्छा सवाल। मुझे लगता है कि इसे अधिकतम पुन: उपयोग करने की अनुमति देने के लिए कुछ हद तक फिर से संरचित किया जा सकता है। इसके बारे में सोच रहे हैं ... – GManNickG

+0

@GMan: अब मैं उत्सुक हूं, मैं फिर से उपयोगिता को सुधारने के तरीके को नहीं देख सका। –

+0

मैन, यह मेरी जीभ की नोक पर है! Blargh। – GManNickG

उत्तर

4

मुझे पसंद है, वरीयता कम करने में:

  • पासकी दोस्त मुहावरा
  • पासकी दरवाजा दोस्त मुहावरा
  • पास दरवाजे दोस्त मुहावरा
  • कुंजी दरवाजा दोस्त मुहावरा
  • आंशिक-दोस्त idiom
  • प्रतिबंधित मित्र idiom

मैं कुंजी नामांकन योजना से कुंजी-लॉक/की-कीहोल नामकरण योजना से दूर चले गए, जो मुझ पर बढ़ी।

+0

एचएम, मैंने और अधिक वोटिंग की उम्मीद की थी और 2 उत्तरों के बीच चयन नहीं करना था ... आह ठीक है, जाहिर है कि इससे बहुत से लोग इससे कोई फर्क नहीं पड़ता। मैं व्यक्तिगत रूप से * पासकी * के साथ जा रहा हूं। –

4

SomeKey एक तरह एक सा लग रहा है (?) बार :: संरक्षित विधि में जाने के लिए बैकस्टेज पास। तो उस क्षेत्र में कुछ भी अच्छा होना चाहिए: पासपोर्ट मुहावरे, वॉचवर्ड मुहावरे, पासकी मुहावरे, वीआईपी idiom..err उत्तम दर्जे का उपयोग?

+0

मुझे बैकस्टेज पास idiom – stefaanv

+0

पसंद है क्या आपके पास यहां एक पसंदीदा है? मुझे * पास-कुंजी * इनमें से अधिकतर कम होने के लिए और (कम से कम मेरे लिए) वर्णनात्मक पसंद है। –

2

विरासत का उपयोग करके, अधिक सामान्य फैशन में ऐसा करने के अन्य तरीके हैं। यहां, कक्षा केक दोनों कीहोल और कुंजी दोनों के रूप में कार्य करता है। यहां, किसी भी वर्ग जो कि केक से विरासत (स्थिर विरासत भी हो सकता है) केक में सुलभ होने के लिए परिभाषित कुछ क्लास के सबसेट तक पहुंच सकता है, और निश्चित रूप से, आप कई अलग-अलग वर्गों में कई अलग-अलग सबसेट प्राप्त कर सकते हैं।

class cake; 
class SomeClass { 
    friend class cake; 
    void foo(); 
}; 
class cake { 
    void DoFoo(SomeClass& class) { class.foo(); } 
}; 
class lols : cake { 
    // Now we can DoFoo(). 
}; 

मैं इसे लॉक और कुंजी नाम दूंगा।

+0

हालांकि जीएमएन ने अतिरिक्त रूप से एक एक्सटेंशन जोड़ा, फिर भी सवाल सामान्य दृष्टिकोण के नामकरण के बारे में है। –

+0

खोला [साइड सवाल] (http://stackoverflow.com/questions/3324898/can-we-increase-the-re-usability-of-this-key-oriented-access-protection-pattern) ताकि हम इसे बना सकें दो अलग-अलग चर्चाएं –

4

मैं बैज इडियॉम नामकरण का प्रस्ताव करता हूं, जो अधिकार के अधिकार को साबित करने के अनुरोध पर प्रस्तुत टोकन को दर्शाता है। मेरा मानना ​​है कि यह अन्य उत्तरों में कुंजी शब्द के आसपास घूमने वालों की तुलना में बेहतर रूपक है।

'कुंजी' प्रोग्रामिंग शब्दावली में पहले ही काफी अधिभारित है, कम से कम लुकअप और प्रतिबंधित पहुंच के विचारों को भंग कर रहा है। इसके अलावा, असली चाबियां आमतौर पर व्यक्तिगत ताले संचालित करती हैं, न कि निर्माता से सभी ताले का सेट, और इस पैटर्न में स्वीकार्य वर्ग ताले का सेट नहीं है बल्कि आत्म-रक्षा संस्थाओं को कार्य करने के लिए कहा जा रहा है।

'बैज' सिद्धांत को बताता है कि टोकन अन्य इकाइयों की पूरी कक्षा के लिए अधिकार प्रदान करता है, केवल एक ही वस्तु नहीं। यह शब्द (यूएस-केंद्रित?) पुलिस या सुरक्षा इमेजरी पर बहुत निर्भर हो सकता है, और मैंने सबपोना या वारंट जैसे शब्दों पर विचार किया था, लेकिन वे तीसरे पक्ष को पहुंच प्रदान करने पर बहुत अधिक ध्यान केंद्रित कर रहे थे।वैसे भी, दिए गए बैज प्रकार वाले व्यक्ति उन बैजों का सम्मान करने वाले व्यक्तियों के वर्गों से संहिताबद्ध व्यवहार को मजबूर कर सकते हैं।

  • एक:: मैं इस तरह समग्र बातचीत को देखने के इस पार्टी के बहुत जोर से। अपना स्टीरियो बंद करें। (बैज प्रस्तुत करता है)
  • बी: ओह, ठीक है, अधिकारी। (groan)
+0

एचएम, मैं आपका बिंदु देखता हूं लेकिन (मेरे लिए व्यक्तिगत रूप से) एसोसिएशन कुंजी/लॉक एट अल के साथ मेरे चेहरे में ज्यादा कूद नहीं करता है :) इसके अलावा चाबियाँ हमेशा व्यक्तिगत ताले पर काम नहीं करतीं: इस घर के लिए मेरी कुंजी मेरा अपार्टमेंट, मुख्य दरवाजा, तहखाने का दरवाजा खोलता है, ... –

संबंधित मुद्दे