2009-07-08 13 views
5

अपनी पुस्तक चरम प्रोग्रामिंग एप्लाइड में, केन एयूर ने आकस्मिक रूप से एक एनाबेलर पैटर्न का उल्लेख किया है। केंट बैक भी (नवंबर 08, 2004 एक ईमेल में कम से कम) यह उल्लेख है, लेकिन मैं (गूगल, c2.com पर विकि, आदि)केन एयूर द्वारा लोकप्रिय एनाबेलर पैटर्न के बारे में मुझे और जानकारी कहां मिल सकती है?

किसी भी आम स्थानों में विवरण प्राप्त करने में सक्षम नहीं किया गया है

मुझे और कहां मिल सकता है?

उत्तर

5

एनाबेलर पैटर्न वास्तव में एक पर्यवेक्षक पैटर्न की एक भिन्नता है। आपने स्थितियों को बनाने, सिस्टम के दिलचस्प हिस्सों पर पर्यवेक्षकों की स्थापना की। एनबेलर तब शर्तों का निरीक्षण कर सकते हैं और विजेट सक्षम/अक्षम कर सकते हैं।

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

मैं आमतौर पर विजेट फैक्ट्री करके उन्हें कार्यान्वित करता हूं जैसे कि आपके द्वारा पारित पैरामीटर में से एक नामित स्थितियों की एक सरणी है, जब एक साथ और साथ में, विजेट को सक्षम/अक्षम करें। जैसे

widgetFactory.createButton (स्ट्रिंग BUTTONLABEL, स्ट्रिंग methodActionName, String [] conditionNames)

conditionNames, स्थितियां कि HashMap के कुछ प्रकार में उपलब्ध हैं ऊपर दिखेगा एक CompositeCondition (मूल्य बना जो ands मनाया बूलियन के सभी शर्तों के मूल्य) और एक एनाबेलर बनाता है जो कंपोजिट कंडीशन को सुनता है और अंतर्निहित स्थिति के आधार पर सक्षम/अक्षम करने के लिए बनाए गए विजेट को बताता है।

यह थोड़ा जटिल लगता है, लेकिन एक बार आप अंतर्निहित बुनियादी ढांचा तैयार, कोड तार ऊपर अपनी शर्तों, और उसके बाद यूजर इंटरफेस की तर्ज के एक जोड़े की स्थिति के साथ सिंक में हमेशा होता है।

मुझे नहीं लगता कि मैं कभी भी आधिकारिक तौर पर Enabler पैटर्न लिखा था, या मैं सिर्फ एक यूआरएल के लिए आप बात होगी।

HTH,

केन

+0

यह निश्चित जवाब होने लगते हैं! (एफडब्ल्यूआईडब्लू, अगर आप इसे सही तरीके से लिखते हैं तो मुझे वह यूआरएल पसंद आएगा। :-)) बहुत उपयोगी और रोचक किताब के लिए भी धन्यवाद। –

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