javascript - atscript - जावास्क्रिप्ट का उपयोग करने वाले डिजाइन पैटर्न के कार्यान्वयन के कुछ उदाहरण क्या हैं?




जावास्क्रिप्ट इन भाषाओं से प्रेरित (7)

मैं जावास्क्रिप्ट का उपयोग कर एक मामूली कुशल प्रोग्रामर हूं, लेकिन मैं कोई गुरु नहीं हूं। मुझे पता है कि आप इसके साथ कुछ बहुत शक्तिशाली चीजें कर सकते हैं, मैंने काफी बुनियादी डोम हेरफेर के अलावा बहुत कुछ नहीं देखा है। मैं सोच रहा हूं कि लोग पारंपरिक डिजाइन पैटर्न अवधारणाओं जैसे कि फैक्टरी विधि, सिंगलटन, आदि जावास्क्रिप्ट का उपयोग कर सकते हैं। क्या इन तरीकों में वेब पर इस्तेमाल किया जाएगा?


निकोलै ने इस पर छूया, लेकिन डिजाइन पैटर्न उन भाषाओं के बीच सुसंगत नहीं हैं, जिनमें कठोर मतभेद हैं। मैंने (और इससे सहमत होने से पहले) पढ़ा है कि एक डिज़ाइन पैटर्न अक्सर भाषा में लापता सुविधाओं का संकेत है।

एक आदर्श उदाहरण के रूप में, "फैक्ट्री" पैटर्न कुछ भाषाओं में रूबी को पूरी तरह अनावश्यक है, उदाहरण के लिए मैं सोच रहा हूँ (क्योंकि ऑब्जेक्ट निर्माण क्लास इंस्टेंस पर सिर्फ एक तरीका है):

# create a factory for MyObject
my_factory = MyObject
instance_1 = my_factory.new

# change the factory to another class
my_factory = MyOtherObject
instance_2 = my_factory.new

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




मैंने हाल ही में बर्नी की बेहतर एनीमेशन कक्षा का इस्तेमाल किया है जो रणनीति डिजाइन पैटर्न का व्यापक उपयोग करता है बर्नी का वर्णन करने में बहुत अच्छा काम करता है कि रणनीति पैटर्न का उपयोग क्यों किया जाना चाहिए लेकिन दुर्भाग्य से यह स्पष्ट नहीं करता कि कोड कैसे काम करता है। फिर से, जब एक डिज़ाइन पैटर्न संदर्भ का उपयोग करते हैं, तो स्ट्रैटेजी पैटर्न का उपयोग करने का एक अच्छा उदाहरण के लिए एनीमेटर.जे में कोड और टिप्पणियों को देखें।

उदाहरण:

// This object controls the progress of the animation 
ex1 = new Animator();
// The Animator's subjects define its behaviour 
ex1.addSubject(updateButton);
function updateButton(value) {
    $('ex1Button').innerHTML = "Progress: " + Math.round(value * 100) + "%";
}

// now click below: each click to the button calls ex1.toggle()

जस्टिन डियाज़ को जावास्क्रिप्ट के लिए डिज़ाइन पैटर्न के बारे में बात करना सुनो । यह बात उनकी पुस्तक प्रो जावस्क्रिप्ट तकनीकों पर भी आधारित है जो उपरोक्त उल्लेख है। Google I / O पर बात लगभग 45 मिनट है



जावास्क्रिप्ट में कहा जाता है इस अभ्यास क्या है?

यह आत्म-आमंत्रण डिजाइन पैटर्न है मैंने इसे कभी नहीं देखा था जब तक कि मैं जावास्कीटिंग शुरू नहीं करता था।






factory-method