2011-10-22 17 views
97

रेलवे समुदाय पर रूबी में decorators और प्रस्तुतकर्ताओं के बारे में हाल ही में सभी तरह की बातें हैं।रेल पैटर्न पर रूबी - सजावटी बनाम प्रस्तुति

दोनों के बीच आवश्यक अंतर क्या है? यदि वहां है, तो संकेत क्या हैं जो मुझे बताते हैं कि दूसरे पर किस का उपयोग करना है? या शायद संयोजन के रूप में दोनों का उपयोग करने के लिए?

उत्तर

88

एक सजावटी "इस इकाई में कुछ कार्यक्षमता जोड़ें" से अधिक है। एक प्रस्तुतकर्ता एक "मॉडल/बैकएंड और दृश्य के बीच एक पुल का निर्माण करते हैं"। प्रस्तुतकर्ता पैटर्न में कई व्याख्याएं हैं।

सजावटी सामान्य/सामान्य उद्देश्य हैं। प्रस्तुतकर्ताओं की जिम्मेदारियों/उपयोगों की एक संक्षिप्त श्रृंखला है। सजावटकर्ताओं का उपयोग डोमेन पर किया जाता है, प्रस्तुतकर्ता लगभग हमेशा समान कार्यक्षमता से संबंधित होते हैं।

+3

धन्यवाद। ऐसा लगता है कि ड्रेपर मणि प्रस्तुतकर्ता और सजावटी का एक संकर है। – keruilin

+16

@keruilin ध्यान में रखना एक बात है: सजावटी वास्तव में अन्य सजावट (साथ ही घटक वस्तु को सजाने) को सजाने में सक्षम होना चाहिए, क्योंकि उनके उद्देश्यों में से एक विरासत की सीमाओं के आसपास होना है। (ड्रेपर * यह * नहीं करता है)। सजावटी पैटर्न उस अर्थ में समग्र पैटर्न के समान ही है, अंदरूनी के बजाय बाहर-बाहर से नियंत्रित किए जाने के अलावा (अगर यह समझ में आता है)। – Smudge

+5

मैं एक सजावटकर्ता को सामान्य उद्देश्य पैटर्न के रूप में देखता हूं, और प्रस्तुतकर्ता दृश्य परत से संबंधित सजावटी के विशिष्ट अनुप्रयोग के रूप में प्रस्तुत करता हूं। – Kris

29

मैं आप इस जाँच करने के लिए सुझाव है - Exhibit vs Presenter

सजावट एक डिज़ाइन पैटर्न है जिसका उपयोग किसी ऑब्जेक्ट के अन्य उदाहरणों को प्रभावित किए बिना किसी विशिष्ट ऑब्जेक्ट की कार्यक्षमता को बढ़ाने के लिए किया जाता है। आम तौर पर, सजावटी पैटर्न open/close principle का एक उदाहरण है (कक्षा संशोधनों के लिए बंद है, लेकिन एक्सटेंशन के लिए उपलब्ध है)।

प्रदर्शनी और प्रस्तुतकर्ता पैटर्न दोनों सजावटी पैटर्न हैं।

+0

+1। उत्कृष्ट पोस्ट जो पैटर्न के बीच अंतर बताता है। प्रदर्शनी पैटर्न का उल्लेख करने के लिए – ki4jnq

+0

+1। मैं अवदी ग्रिम की पुस्तक प्राप्त कर चुका हूं जो इसे समझाता है। हालांकि, यह मेरी समस्या का सही समाधान नहीं था, यह अभी भी एक अद्भुत पैटर्न है। विचार के लिए उत्कृष्ट भोजन। – Yonk

संबंधित मुद्दे