ऑब्झर्व्हर डिझाईन पॅटर्न हा एक पॉडकास्ट सारखा आहे

आपण पॉडकास्ट ऐकल्यास, आपण आधीपासून निरीक्षक पद्धतीशी परिचित आहात. खरं तर, आपण "निरीक्षक" आहात.

येथे निरीक्षक पॅटर्नची व्याख्या आहे:

ऑब्झर्व्हर पॅटर्न ऑब्जेक्ट्स मधील एक ते अनेक अवलंबित्व परिभाषित करते जेणेकरून जेव्हा एखादी ऑब्जेक्ट स्टेट बदलते तेव्हा त्याचे सर्व अवलंबित आपोआप सूचित केले जातात आणि अद्यतनित होतात.

पॉडकास्टशी संबंधित परिभाषा पाहूया.

विकसक चहा नावाचा एक मनोरंजक पॉडकास्ट मला आढळला.

सबस्क्राइब बटणावर क्लिक केल्यानंतर, मी आता त्यांच्या ग्राहक यादीमध्ये आहे.

जेव्हा विकसक चहा नवीन भाग प्रकाशित करतात, तेव्हा अ‍ॅप मला आणि इतर सदस्यांना सूचित करेल. हे आमच्यासाठी नवीन भाग डाउनलोड करते.

हे अगदी ऑब्झर्व्हर पॅटर्नची व्याख्या आहे!

ऑब्जर्व्हर पॅटर्न ऑब्जेक्ट्स मधील एक ते अनेक अवलंबित्व परिभाषित करते जेणेकरून जेव्हा एखादी ऑब्जेक्ट स्टेट बदलते तेव्हा त्याचे सर्व अवलंबित आपोआप सूचित केले जातात आणि अद्यतनित होतात.

विकसक चहा पॉडकास्ट आणि ग्राहक यांच्यात एक ते अनेक संबंध आहेत.

जेव्हा विकसक चहा नवीन भाग सोडण्यासारख्या स्थितीत बदलतो तेव्हा सर्व विकसक चहाचे ग्राहक सूचित केले आणि अद्यतनित केले जातात.

चला रुबीमध्ये अंमलात आणूया.

सोपी आवृत्तीसह प्रारंभ करा.

पॉडकास्ट वर्गात भागांची यादी आहे आणि त्या यादीमध्ये जोडण्यासाठी_पिसोडची पद्धत आहे.

मग आम्ही विकसक_टेआ पॉडकास्ट तयार करू आणि यामध्ये भाग # 1 जोडू शकतो:

जेव्हा जेव्हा नवीन भाग प्रकाशित होतो तेव्हा मला सूचना प्राप्त करायची आहे.

सूचीमध्ये नवीन भाग जोडल्यानंतर आम्ही मला अद्यतनित करू शकतो:

आणि जेव्हा जेव्हा मला विकसक_टेआकडून अद्यतन प्राप्त होते, तेव्हा मी पुढे जाऊन नवीनतम भाग डाउनलोड करू शकतो.

विकसक_टीआ ऐकण्यात मला इतका आनंद होतो की मी माझा मित्र अंबर याला याची शिफारस करतो. आता, अंबरला देखील याची सदस्यता घ्यायची आहे.

जेव्हा नवीन एपिसोड रिलीझ होते तेव्हा अंबरलाही एक सूचना मिळेल याची आम्ही खात्री केली पाहिजे:

हं, हा कोड आपल्याला पाहिजे ते करतो.

पण एक समस्या आहे.

प्रत्येक वेळी आम्हाला एखादा ग्राहक जोडायचा आहे, तेव्हा आम्हाला वर्ग पुन्हा परिभाषित करावा लागेल.

वर्ग पुन्हा परिभाषित केल्याशिवाय ग्राहक यादी अद्यतनित करण्याचा कोणताही मार्ग आहे?

आम्ही ग्राहकांची यादी ठेवू शकतो!

नवीन पॉडकास्ट वर्ग दोन नवीन पद्धतींच्या सहाय्याने ग्राहकांची यादी ठेवतोः एक ग्राहक जोडण्यासाठी आणि एक ग्राहक काढून टाकण्यासाठी. जेव्हा एखादे भाग प्रकाशित केला जातो, तेव्हा आम्ही प्रत्येक ग्राहक अद्यतनित करतो.

दुर्दैवाने, अंबर माझ्यासारख्या पॉडकास्टचा आनंद घेत नाही आणि सदस्यता रद्द करण्याचा निर्णय घेतो. आम्ही तिला ग्राहकांच्या यादीतून काढून टाकण्यासाठी काढून टाकण्यासाठी सबस्क्रायबर पद्धत वापरतो.

-हो! आपण नुकताच निरीक्षक नमुना शिकलात!

ऑब्जर्व्हर पॅटर्नमागील डिझाईन तत्व.

ऑब्झर्व्हर पॅटर्न लूज कपलिंग डिझाइन तत्त्वाचा उपयोग करते:

संवाद साधणार्‍या ऑब्जेक्ट्स दरम्यान हळूवारपणे जोड्या डिझाइनसाठी प्रयत्न करा.

पॉडकास्ट वर्गास आपल्या सदस्यांविषयी बरेच काही माहित नाही. हे फक्त प्रत्येक सदस्याला अद्ययावत करण्याची पद्धत आहे हे माहित आहे.

हे सैल कपलिंग पॉडकास्ट आणि त्याचे सदस्य यांच्यामधील अवलंबन कमी करते. हे लवचिकता देखील वाढवते. जोपर्यंत याची अद्ययावत पद्धत आहे, तोपर्यंत ग्राहक काहीही असू शकतो: मनुष्य, लोकांचा समूह, प्राणी किंवा अगदी कार.

टेकवे:

  1. ऑब्जर्व्हर पॅटर्न ऑब्जेक्ट्स मधील एक ते अनेक अवलंबित्व परिभाषित करते जेणेकरून जेव्हा एखादी ऑब्जेक्ट स्टेट बदलते तेव्हा त्याचे सर्व अवलंबित आपोआप सूचित केले जातात आणि अद्यतनित होतात.
  2. लूज कपलिंग डिझाइन तत्व: परस्परसंवाद साधणार्‍या वस्तूंच्या दरम्यान मोकळेपणाने एकत्रित डिझाइनसाठी प्रयत्न करा.

वाचल्याबद्दल धन्यवाद. आपण विचार करू शकता अशा निरीक्षकाच्या पद्धतीची आणखी काही वास्तविक जीवनाची उदाहरणे आहेत?

मी आठवड्यात sihui.io वर प्रकाशित करतो.

सदस्यता घ्या म्हणजे आपण मालिकेतील पुढील लेख गमावणार नाही.

पुढील वेळी आपण याबद्दल बोलू ...