Observer Pattern – Design Patterns (ep 2)
आप क्या सीखेंगे
- Observer पैटर्न का उपयोग करके एक ऑब्जर्वर और एक ऑब्जर्वेबल के बीच एक एक-से-बहुत संबंध बनाना सीखें।
- ऑब्जर्वर पैटर्न का उपयोग करके पोलिंग की समस्या को कैसे हल किया जा सकता है।
- ऑब्जर्वर पैटर्न को लागू करने के लिए एक उदाहरण का उपयोग करके देखेंगे।
मुख्य अवधारणाएं
Observer पैटर्न एक डिज़ाइन पैटर्न है जो एक ऑब्जर्वर और एक ऑब्जर्वेबल के बीच एक एक-से-बहुत संबंध बनाने के लिए उपयोग किया जाता है। ऑब्जर्वर पैटर्न का उपयोग करके पोलिंग की समस्या को हल किया जा सकता है, जिसमें एक ऑब्जर्वर को लगातार एक ऑब्जर्वेबल से पूछना पड़ता है कि क्या कुछ बदला है। ऑब्जर्वर पैटर्न में एक ऑब्जर्वेबल और एक या अधिक ऑब्जर्वर होते हैं, जो ऑब्जर्वेबल के बदलावों को देखते हैं और उन्हें अपडेट करते हैं।
कोड उदाहरण
public interface IObserver {
void update();
}
public interface IObservable {
void add(IObserver observer);
void remove(IObserver observer);
void notify();
}
यह कोड ऑब्जर्वर पैटर्न के लिए इंटरफेस को परिभाषित करता है, जिसमें एक ऑब्जर्वर और एक ऑब्जर्वेबल के बीच एक एक-से-बहुत संबंध बनाने के लिए उपयोग किए जाने वाले तरीके शामिल हैं।
public class WeatherStation implements IObservable {
private List<IObserver> observers;
public WeatherStation() {
observers = new ArrayList<>();
}
@Override
public void add(IObserver observer) {
observers.add(observer);
}
@Override
public void remove(IObserver observer) {
observers.remove(observer);
}
@Override
public void notify() {
for (IObserver observer : observers) {
observer.update();
}
}
}
यह कोड एक वेदर स्टेशन क्लास को परिभाषित करता है, जो ऑब्जर्वेबल के रूप में कार्य करता है और ऑब्जर्वर्स को जोड़ने, हटाने, और अपडेट करने के लिए तरीके प्रदान करता है।
पाठ सारांश
इस पाठ में, हमने ऑब्जर्वर पैटर्न का उपयोग करके एक ऑब्जर्वर और एक ऑब्जर्वेबल के बीच एक एक-से-बहुत संबंध बनाने के बारे में सीखा। हमने देखा कि ऑब्जर्वर पैटर्न का उपयोग करके पोलिंग की समस्या को कैसे हल किया जा सकता है, जिसमें एक ऑब्जर्वर को लगातार एक ऑब्जर्वेबल से पूछना पड़ता है कि क्या कुछ बदला है। हमने एक वेदर स्टेशन क्लास का उदाहरण देखा, जो ऑब्जर्वेबल के रूप में कार्य करता है और ऑब्जर्वर्स को जोड़ने, हटाने, और अपडेट करने के लिए तरीके प्रदान करता है। हमने यह भी देखा कि ऑब्जर्वर पैटर्न का उपयोग करके एक एक-से-बहुत संबंध बनाने के लिए इंटरफेस को परिभाषित किया जा सकता है, जिसमें एक ऑब्जर्वर और एक ऑब्जर्वेबल के बीच एक संबंध बनाने के लिए उपयोग किए जाने वाले तरीके शामिल हैं।
अभ्यास व्यायाम
एक वेदर स्टेशन क्लास बनाएं जो ऑब्जर्वेबल के रूप में कार्य करता है और ऑब्जर्वर्स को जोड़ने, हटाने, और अपडेट करने के लिए तरीके प्रदान करता है। एक ऑब्जर्वर क्लास बनाएं जो वेदर स्टेशन क्लास को अपडेट करता है जब वेदर स्टेशन में कोई बदलाव होता है। वेदर स्टेशन क्लास और ऑब्जर्वर क्लास को एक साथ उपयोग करके देखें कि वे कैसे एक दूसरे के साथ बातचीत करते हैं।
आगे क्या है
अब जब आप ऑब्जर्वर पैटर्न के बारे में जानते हैं, तो आप डिज़ाइन पैटर्न के अगले पाठ में आगे बढ़ सकते हैं, जिसमें हम स्ट्रेटजी पैटर्न के बारे में सीखेंगे। स्ट्रेटजी पैटर्न एक डिज़ाइन पैटर्न है जो एक ऑब्जेक्ट के व्यवहार को बदलने के लिए उपयोग किया जाता है, और यह ऑब्जर्वर पैटर्न के साथ मिलकर उपयोग किया जा सकता है।