२.१ राज्य
राज्य एक वर्तणूक रचना नमुना आहे. हे अशा प्रकरणांमध्ये वापरले जाते जेव्हा, प्रोग्रामच्या अंमलबजावणी दरम्यान, ऑब्जेक्टने त्याच्या स्थितीनुसार त्याचे वर्तन बदलले पाहिजे.

पॅटर्नमध्ये 3 ब्लॉक्स असतात:
संदर्भ हा एक वर्ग आहे ज्यांच्या वस्तूंनी त्यांचे वर्तन राज्यावर अवलंबून बदलले पाहिजे.
राज्य हा इंटरफेस आहे ज्याची अंमलबजावणी प्रत्येक ठोस राज्यांनी केली पाहिजे. या इंटरफेसद्वारे, कॉन्टेक्स्ट ऑब्जेक्ट राज्याशी संवाद साधतो आणि त्याला मेथड कॉल डेलिगेट करते. इंटरफेसमध्ये ज्या ऑब्जेक्टचे वर्तन बदलले जाणार आहे त्याच्या फीडबॅकचे साधन असावे.
यासाठी, एक कार्यक्रम वापरला जातो (पॅटर्न प्रकाशक - सदस्य). कार्यक्रमाच्या अंमलबजावणीदरम्यान जेव्हा घटना घडतात तेव्हा राज्य ऑब्जेक्ट पुनर्स्थित करण्यासाठी हे आवश्यक आहे. अशी प्रकरणे असू शकतात जेव्हा कॉन्टेक्स्ट स्वतः वेळोवेळी राज्य ऑब्जेक्टला संक्रमणासाठी मतदान करते.
ConcreteState1, ConcreteState2 - कंक्रीट राज्यांचे वर्ग. कोणत्या परिस्थितीत आणि कोणत्या स्थितीत ऑब्जेक्ट चालू स्थितीतून जाऊ शकते याबद्दल माहिती असावी. उदाहरणार्थ, ConcreteState1 वरून, एखादी वस्तू ConcreteState2 आणि ConcreteState3 वर जाऊ शकते आणि ConcreteState2 वरून ConcreteState1 वर जाऊ शकते, आणि असेच. तयार केल्यावर त्यातील एकाच्या ऑब्जेक्टमध्ये संदर्भ असणे आवश्यक आहे.
उदाहरणार्थ, तुम्ही एक खेळ लिहित आहात ज्यामध्ये एक पात्र धावू शकते, पोहू शकते आणि उडू शकते. जर तुमचा वर्ण पाण्यात गेला असेल तर पाण्यात त्याचे वर्तन मर्यादित करणे वाजवी आहे: आता तो शूट करू शकत नाही, परंतु तरीही त्याच्याकडे काही क्रिया आहेत: पुढे, उजवीकडे, डावीकडे पोहणे इ.
तुमच्या वर्णाची स्थिती स्टेट ऑब्जेक्टद्वारे वर्णन केली जाऊ शकते, ज्यामध्ये अशा पद्धती आहेत ज्यांना कॉल केले जाऊ शकते आणि ते काहीतरी करेल. आणि तुमचे पात्र पाण्यात गेल्यानंतर, तुम्ही फक्त त्यातील दुसर्या स्टेट ऑब्जेक्टचा संदर्भ बदलता - आणि ते तिची स्थिती बदलते.
2.2 धोरण
स्ट्रॅटेजी म्हणजे अल्गोरिदमचे कुटुंब परिभाषित करण्यासाठी, प्रत्येकाला एन्कॅप्स्युलेट करण्यासाठी आणि त्यांना अदलाबदल करण्यायोग्य बनवण्यासाठी वर्तणूक डिझाइन पॅटर्न आहे. हे तुम्हाला योग्य वर्ग परिभाषित करून अल्गोरिदम निवडण्याची परवानगी देते.
स्ट्रॅटेजी पॅटर्न तुम्हाला निवडलेल्या अल्गोरिदमचा वापर करणाऱ्या क्लायंट ऑब्जेक्ट्सकडे दुर्लक्ष करून बदलण्याची परवानगी देतो.

स्ट्रॅटेजी पॅटर्न तुम्हाला संदर्भानुसार वेगवेगळे व्यवसाय नियम किंवा अल्गोरिदम वापरण्याची परवानगी देतो. हे अशा प्रकरणांमध्ये वापरले जाते जेथे सिस्टमच्या सद्य स्थितीवर (किंवा त्याचे वातावरण) अवलंबून एकाच ठिकाणी भिन्न अल्गोरिदम वापरणे आवश्यक आहे.
सामर्थ्य:
- विविध अल्गोरिदमच्या अंमलबजावणीचे encapsulation, प्रणाली व्यवसाय नियमांमधील संभाव्य बदलांपासून स्वतंत्र होते;
- सर्व अल्गोरिदम एका मानक मार्गाने कॉल करणे;
- स्विच आणि/किंवा सशर्त विधाने वापरत नाही.
हा पॅटर्न काहीसा स्टेट पॅटर्नशी मिळतीजुळती आहे, पण इथे भर राज्यावर नाही, तर वर्तनावर आहे. समजा तुमच्या गेममधील एक वर्ण शस्त्रे बदलू शकतो. मग शस्त्रे बदलताना, तुम्ही फक्त ऑब्जेक्टचा संदर्भ बदलू शकता जे हे शस्त्र कसे कार्य करते याचे वर्णन करते.
2.3 टेम्पलेट पद्धत

अमूर्त वर्ग (अमूर्त वर्ग) - अल्गोरिदमच्या चरणांची अंमलबजावणी करण्यासाठी वारसांमध्ये बदललेल्या अमूर्त ऑपरेशन्सची व्याख्या करते; अल्गोरिदमचा सांगाडा परिभाषित करणारी टेम्पलेट पद्धत लागू करते. टेम्प्लेट पद्धत अॅब्स्ट्रॅक्ट क्लासमध्ये परिभाषित केलेल्या बदललेल्या आणि इतर ऑपरेशन्सना कॉल करते.
काँक्रीट क्लास (कॉंक्रीट क्लास) - अंमलबजावणीसाठी आवश्यक असलेल्या मार्गाने बदललेल्या ऑपरेशन्सची अंमलबजावणी करते. कॉंक्रिट क्लास असे गृहीत धरतो की अल्गोरिदमचे अपरिवर्तनीय चरण अॅबस्ट्रॅक्टक्लासमध्ये केले जातील.
जेव्हा आवश्यक असेल तेव्हा हा नमुना सहसा वापरला जातो:
- अल्गोरिदमच्या अपरिवर्तनीय भागाचा एकल वापर, बदलणारा भाग वारसांच्या विवेकबुद्धीनुसार सोडून.
- डुप्लिकेशन टाळण्यासाठी अनेक वर्गांसाठी सामान्य कोडचे स्थानिकीकरण आणि पृथक्करण.
- इनहेरिटर्सना फक्त ठराविक ठिकाणी कोड वाढवण्याची परवानगी द्या.
होय, हा नमुना जोडीच्या वापराचे वर्णन करतो: एक अमूर्त वर्ग आणि त्याची अंमलबजावणी.
2.4 जबाबदारीची साखळी
जबाबदारीची साखळी ही एक वर्तणूक रचना नमुना आहे जी प्रणालीमध्ये जबाबदारीचे स्तर आयोजित करण्यासाठी डिझाइन केलेली आहे.

टेम्प्लेट अशा परिस्थितीत वापरण्याची शिफारस केली जाते जेथे:
- विकसित प्रणालीमध्ये ऑब्जेक्ट्सचा एक समूह आहे जो विशिष्ट प्रकारच्या संदेशांवर प्रक्रिया करू शकतो;
- सर्व संदेशांवर कमीतकमी एका सिस्टम ऑब्जेक्टद्वारे प्रक्रिया करणे आवश्यक आहे;
- सिस्टममधील संदेशांवर "स्वतःवर प्रक्रिया करा किंवा दुसर्याकडे पाठवा" योजनेनुसार प्रक्रिया केली जाते, म्हणजे, काही संदेश ज्या स्तरावर प्राप्त झाले होते त्या स्तरावर प्रक्रिया केली जातात, तर इतर दुसर्या स्तराच्या वस्तूंवर पाठविली जातात.
2.5 स्मृतीचिन्ह
कीपर (मेमेंटो) हा एक वर्तनात्मक डिझाइन पॅटर्न आहे जो तुम्हाला एन्कॅप्स्युलेशनचे उल्लंघन न करता ऑब्जेक्टची अंतर्गत स्थिती दुरुस्त आणि जतन करण्यास अनुमती देतो जेणेकरून ते नंतर या स्थितीत पुनर्संचयित केले जाऊ शकते.

गार्डियन पॅटर्न वापरला जातो जेव्हा:
- त्यानंतरच्या जीर्णोद्धारासाठी ऑब्जेक्टच्या स्थितीचा (किंवा त्याचा काही भाग) स्नॅपशॉट जतन करणे आवश्यक आहे;
- ऑब्जेक्टची स्थिती मिळविण्यासाठी थेट इंटरफेस अंमलबजावणी तपशील उघड करतो आणि ऑब्जेक्ट एन्कॅप्सुलेशन खंडित करतो.
GO TO FULL VERSION