हा लेख अशा प्रत्येकासाठी आहे ज्याला, पहिल्यांदाच, डिझाइन पॅटर्नची संकल्पना येत आहे, सिंगलटन हा शब्द ऐकला आहे , किंवा कसा तरी सिंगलटन पॅटर्न लागू केला आहे परंतु काय होत आहे ते समजले नाही. स्वागत आहे! कोडजिमच्या विद्यार्थ्यांना लेव्हल 15 वर पहिल्यांदाच डिझाइन पॅटर्नचा सामना करावा लागतो, जेव्हा कॅप्टन अनपेक्षितपणे त्यांना जावा सिंगलटन पॅटर्नची आळशी अंमलबजावणी करून त्यांची समज "मजबूत" करण्यास सांगतो. सिंगलटन पॅटर्नबद्दल प्रथमच ऐकणाऱ्या विद्यार्थ्यांच्या मनात बरेच प्रश्न असतात: जगात डिझाइन पॅटर्न म्हणजे काय? आम्हाला त्याची गरज का आहे? सिंगलटन म्हणजे काय ? आणि शेवटी, आळशी अंमलबजावणी म्हणजे काय? चला या प्रश्नांची क्रमाने उत्तरे देऊ.
आणि सिंगलटन पॅटर्न त्यापैकी फक्त एक आहे.
ब्लॅकजॅक आणि संख्यांसह तुमचा स्वतःचा वर्गीकरण अल्गोरिदम तयार करू शकताआणि असे करण्यात बराच वेळ घालवा, किंवा आपण बर्याच काळापासून समजलेले आणि वर्णन केलेले एक अंमलात आणू शकता. डिझाईन नमुन्यांमध्येही असेच आहे. याव्यतिरिक्त, डिझाइन पॅटर्नसह, कोड अधिक मानक बनतो आणि योग्य पॅटर्न वापरताना, तुमच्याकडून चुका होण्याची शक्यता कमी असते, कारण पॅटर्नचे सामान्य नुकसान ओळखले गेले होते आणि ते फार पूर्वीपासून दूर केले गेले होते. इतर सर्व गोष्टींवर, नमुन्यांचे ज्ञान प्रोग्रामरना एकमेकांना चांगल्या प्रकारे समजून घेण्यास मदत करते. तुमच्या सहकारी प्रोग्रामरना एक लांबलचक स्पष्टीकरण देण्याचा प्रयत्न करण्याऐवजी तुम्ही फक्त पॅटर्नचे नाव सांगू शकता. सारांश, डिझाइन नमुने तुम्हाला मदत करतात:
या विभागाचा निष्कर्ष काढण्यासाठी, आम्ही लक्षात घेतो की डिझाइन नमुन्यांची संपूर्ण मुख्य भाग तीन मोठ्या गटांमध्ये विभागली जाऊ शकते:
जगात डिझाइन पॅटर्न म्हणजे काय?
माझा असा विश्वास आहे की या प्रश्नाचे उत्तर सर्वोत्तम समजून घेण्यासाठी थोडासा इतिहास आहे. चार प्रसिद्ध प्रोग्रामिंग लेखक आहेत (एरिच गामा, जॉन व्लिसिड्स, राल्फ जॉन्सन आणि रिचर्ड हेल्म) ज्यांनी एक मनोरंजक कल्पना मांडली. त्यांच्या लक्षात आले की सॉफ्टवेअर डेव्हलपमेंटसाठी त्यांना अंदाजे समान समस्या सोडवणे आणि त्याच प्रकारे संरचित कोड लिहिणे आवश्यक आहे. म्हणून त्यांनी ठराविक नमुन्यांचे वर्णन करण्याचे ठरविले ज्यांचा वापर ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंगमध्ये करणे आवश्यक आहे. त्यांचे पुस्तक 1994 मध्ये डिझाइन पॅटर्न: एलिमेंट्स ऑफ रीयुजेबल ऑब्जेक्ट-ओरिएंटेड सॉफ्टवेअर या शीर्षकाखाली प्रकाशित झाले. पुस्तकाचे नाव खूप मोठे झाले आणि लोक त्याला फक्त गँग ऑफ फोरचे पुस्तक म्हणू लागले. पहिल्या आवृत्तीत 23 नमुने समाविष्ट होते. त्यानंतर, इतर डझनभर नमुने सापडले.डिझाईन पॅटर्न हा सामान्य समस्येचे प्रमाणित उपाय आहे. |
आम्हाला डिझाइन नमुन्यांची आवश्यकता का आहे?
तुम्ही नमुने जाणून घेतल्याशिवाय प्रोग्राम करू शकता: शेवटी, लेव्हल 15 पर्यंत, तुम्ही कोडजिमवर शेकडो मिनी-प्रोग्रॅम आधीच लिहिले आहेत की ते अस्तित्वात आहेत हे माहीत नसतानाही. हे सूचित करते की डिझाइन पॅटर्न हे एक प्रकारचे साधन आहे ज्याचा वापर मास्टरला हौशीपासून वेगळे करतो: डिझाइन नमुने विशिष्ट समस्येचे योग्यरित्या निराकरण कसे करावे याचे वर्णन करतात. याचा अर्थ असा की नमुने जाणून घेतल्याने तुमचा वेळ वाचतो. अशा प्रकारे, ते अल्गोरिदमसारखेच आहेत. उदाहरणार्थ, तुम्ही
|
शेवटी, सिंगलटन नमुना
सिंगलटन हा एक सर्जनशील नमुना आहे . हा नमुना वर्गाचा एकच प्रसंग असल्याची खात्री करतो आणि या ऑब्जेक्टसाठी जागतिक प्रवेश बिंदू प्रदान करतो. वर्णनावरून, हे स्पष्ट झाले पाहिजे की हा नमुना दोन प्रकरणांमध्ये लागू केला जावा:- जेव्हा तुमच्या प्रोग्रामला विशिष्ट वर्गाचे एकापेक्षा जास्त ऑब्जेक्ट तयार केले जाऊ नयेत. उदाहरणार्थ, संगणक गेममध्ये हिरो वर्ग असू शकतो आणि गेममधील एकमेव नायकाचे वर्णन करणारा फक्त एक हिरो ऑब्जेक्ट असू शकतो.
- जेव्हा आपल्याला ऑब्जेक्टवर जागतिक प्रवेशासाठी एक बिंदू प्रदान करण्याची आवश्यकता असते. दुसऱ्या शब्दांत, तुम्हाला प्रोग्राममध्ये कुठूनही ऑब्जेक्ट उपलब्ध करून देणे आवश्यक आहे. अरेरे, केवळ ग्लोबल व्हेरिएबल तयार करणे पुरेसे नाही, कारण ते लेखन-संरक्षित नाही: कोणीही व्हेरिएबलचे मूल्य बदलू शकतो, त्यामुळे ऑब्जेक्टचा ग्लोबल ऍक्सेस पॉइंट गमावला जाऊ शकतो. सिंगलटनचे हे गुणधर्म आवश्यक असतात, उदाहरणार्थ, जेव्हा तुमच्याकडे डेटाबेससह कार्य करणारी एखादी वस्तू असते आणि तुम्हाला प्रोग्रामच्या वेगवेगळ्या भागांमधून डेटाबेसमध्ये प्रवेश करणे आवश्यक असते. सिंगलटन हे सुनिश्चित करेल की पूर्वी तयार केलेल्या उदाहरणाची जागा घेणारा कोड कोणीही लिहित नाही.
-
आळशी प्रारंभासह सिंगलटनचे उदाहरण शोधा .
-
समान तत्त्व वापरून तीन सिंगलटन वर्ग तयार करा — सूर्य, चंद्र, पृथ्वी — स्वतंत्र फाइल्समध्ये.
-
अंमलात आणाग्रहसूर्य , चंद्र आणि पृथ्वी वर्गांमध्ये इंटरफेस .
- सोल्यूशन क्लासच्या स्थिर ब्लॉकमध्ये कॉल कराreadKeyFromConsoleAndInitPlanetपद्धत
-
ची अंमलबजावणी कराreadKeyFromConsoleAndInitPlanetपद्धत कार्यक्षमता:
-
५.१. कन्सोलमधून एक स्ट्रिंग पॅरामीटर वाचा
-
५.२. जर पॅरामीटर एकाच्या समान असेलग्रहइंटरफेसचे स्थिरांक, योग्य प्लॅनेट ऑब्जेक्ट तयार करा.
-
-
तुम्हाला वर्गाला एक खाजगी स्थिर फील्ड देणे आवश्यक आहे जे एकल ऑब्जेक्ट संग्रहित करते:
public class LazyInitializedSingleton { private static LazyInitializedSingleton instance; // #1 }
-
(डीफॉल्ट) कन्स्ट्रक्टर खाजगी करा. याचा अर्थ असा आहे की वर्गाबाहेर प्रवेश केला जाऊ शकत नाही आणि नवीन वस्तू परत करू शकणार नाही:
public class LazyInitializedSingleton { private static LazyInitializedSingleton instance; private LazyInitializedSingleton(){} // #2 }
-
एक स्थिर निर्मिती पद्धत घोषित करा जी सिंगलटन मिळविण्यासाठी वापरली जाईल:
public class LazyInitializedSingleton { private static LazyInitializedSingleton instance; private LazyInitializedSingleton() {} public static LazyInitializedSingleton getInstance() { // #3 if (instance == null) { // If the object has not yet been created instance = new LazyInitializedSingleton(); // Create a new object } return instance; // Return the previously created object } }
GO TO FULL VERSION