डिज़ाइन पैटर्न: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 2: Line 2:
{{Redirect|डिजाइन पैटर्न्स|पुस्तक|डिजाइन पैटर्न्स}}
{{Redirect|डिजाइन पैटर्न्स|पुस्तक|डिजाइन पैटर्न्स}}


डिज़ाइन पैटर्न किसी डिज़ाइन समस्या के समाधान का पुन: प्रयोज्य रूप है। यह विचार वास्तुकार [[क्रिस्टोफर अलेक्जेंडर]] द्वारा प्रस्तुत किया गया था<ref name="Alexander, A Pattern Language" >{{cite book |first=Christopher |last=Alexander |author-link=Christopher Alexander |title=[[A Pattern Language|A Pattern Language: Towns, Buildings, Construction]] |series=Center for Environmental Structure series |volume=2 |location=New York |publisher=[[Oxford University Press]] |year=1977 |isbn=0-19-501919-9 |oclc=3132495}}</ref> और इसे विभिन्न अन्य विषयों, विशेष रूप से [[सॉफ्टवेयर इंजीनियरिंग]] के लिए अनुकूलित किया गया है।<ref name="Gang of Four" >{{cite book |title=[[Design Patterns (book)|Design Patterns: Elements of Reusable Object-Oriented Software]] |first1=Erich |last1=Gamma |first2=Richard |last2=Helm |first3=Ralph |last3=Johnson |first4=John |last4=Vlissides |series=Addison-Wesley professional computing series |location=Reading, Mass. |publisher=[[Addison-Wesley]] |year=1994 |isbn=0-201-63361-2 |oclc=31171684}} The "[[Design Patterns (book)|Gang of Four]]" book.</ref>
'''डिज़ाइन पैटर्न''' किसी डिज़ाइन समस्या के समाधान का पुन: प्रयोज्य रूप है। यह विचार आर्किटेक्ट [[क्रिस्टोफर अलेक्जेंडर]] द्वारा प्रस्तुत किया गया था<ref name="Alexander, A Pattern Language" >{{cite book |first=Christopher |last=Alexander |author-link=Christopher Alexander |title=[[A Pattern Language|A Pattern Language: Towns, Buildings, Construction]] |series=Center for Environmental Structure series |volume=2 |location=New York |publisher=[[Oxford University Press]] |year=1977 |isbn=0-19-501919-9 |oclc=3132495}}</ref> और इसे विभिन्न अन्य विषयों, विशेष रूप से [[सॉफ्टवेयर इंजीनियरिंग]] के लिए अनुकूलित किया गया है।<ref name="Gang of Four" >{{cite book |title=[[Design Patterns (book)|Design Patterns: Elements of Reusable Object-Oriented Software]] |first1=Erich |last1=Gamma |first2=Richard |last2=Helm |first3=Ralph |last3=Johnson |first4=John |last4=Vlissides |series=Addison-Wesley professional computing series |location=Reading, Mass. |publisher=[[Addison-Wesley]] |year=1994 |isbn=0-201-63361-2 |oclc=31171684}} The "[[Design Patterns (book)|Gang of Four]]" book.</ref>
 


== विवरण ==
== विवरण ==
{{Further|पैटर्न भाषा}}
{{Further|पैटर्न भाषा}}


किसी विशेष क्षेत्र से संबंधित डिज़ाइन पैटर्न का एक संगठित संग्रह [[पैटर्न भाषा]] कहलाता है। यह भाषा उन स्थितियों पर चर्चा करने के लिए एक सामान्य शब्दावली देती है जिनका डिजाइनरों को सामना करना पड़ता है।
किसी विशेष क्षेत्र से संबंधित डिज़ाइन पैटर्न का संगठित संग्रह [[पैटर्न भाषा]] कहलाता है। यह भाषा उन स्थितियों पर वर्णन करने के लिए सामान्य शब्दावली प्रदान करती है जिनका डिजाइनरों को सामना करना पड़ता है।


{{Blockquote|इस भाषा के एलिमेंट इकाइयां हैं जिन्हें पैटर्न कहा जाता है। प्रत्येक पैटर्न समस्या का वर्णन करता है जो हमारे वातावरण में बार-बार होती है, और फिर उस समस्या के समाधान के मूल का वर्णन करती है, इस प्रकार से कि आप इस समाधान का उपयोग एक ही विधि से दो बार किए बिना, लाखों बार कर सकते हैं। .|author=क्रिस्टोफर अलेक्जेंडर|source=''[[पैटर्न भाषा]]''<ref name="Alexander, A Pattern Language"/>}}
{{Blockquote|इस भाषा के एलिमेंट इकाइयां हैं जिन्हें पैटर्न कहा जाता है। प्रत्येक पैटर्न समस्या का वर्णन करता है जो हमारे वातावरण में बार-बार होती है, और फिर उस समस्या के समाधान के मूल का वर्णन करती है, इस प्रकार से कि आप इस समाधान का उपयोग एक ही विधि से दो बार किए बिना, लाखों बार कर सकते हैं। .|author=क्रिस्टोफर अलेक्जेंडर|source=''[[पैटर्न भाषा]]''<ref name="Alexander, A Pattern Language"/>}}


किसी पैटर्न का दस्तावेजीकरण करने के लिए यह समझाने की आवश्यकता होती है कि कोई विशेष स्थिति समस्याएँ क्यों पैदा करती है, और समाधान देने के लिए पैटर्न के घटक एक-दूसरे से कैसे संबंधित होते हैं।<ref>{{cite web |access-date=2011-03-21 |first=James |last=Maioriello |date=2002-10-02 |title=What are design patterns and do I need them? |url=http://www.developer.com/design/article.php/1474561/What-Are-Design-Patterns-and-Do-I-Need-Them.htm |website=developer.com}}</ref> क्रिस्टोफर एलेक्जेंडर आम डिज़ाइन समस्याओं को परस्पर विरोधी ताकतों से उत्पन्न होने वाली समस्याओं के रूप में वर्णित करते हैं - जैसे कि एक कमरे में धूप होना चाहते हैं और यह चाहते हैं कि गर्मी की दोपहर में यह अधिक गर्म न हो, के बीच संघर्ष। एक पैटर्न डिज़ाइनर को यह नहीं बताएगा कि कमरे में कितनी खिड़कियाँ लगानी हैं; इसके बजाय, यह डिज़ाइनर को ऐसे निर्णय की ओर मार्गदर्शन करने के लिए मूल्यों का एक सेट प्रस्तावित करेगा जो उनके विशेष अनुप्रयोग के लिए सर्वोत्तम है। उदाहरण के लिए, अलेक्जेंडर का सुझाव है कि कमरे के चारों ओर सीधी रोशनी के लिए पर्याप्त खिड़कियाँ शामिल की जानी चाहिए। वह इसे एक अच्छा समाधान मानते हैं क्योंकि उनका मानना ​​है कि इससे कमरे में रहने वालों का आनंद बढ़ जाता है। अन्य लेखक अलग-अलग निष्कर्ष पर आ सकते हैं, यदि वे हीटिंग लागत, या सामग्री लागत को अधिक महत्व देते हैं। ये मान, जो पैटर्न के लेखक द्वारा यह निर्धारित करने के लिए उपयोग किए जाते हैं कि कौन सा समाधान सबसे अच्छा है, को भी पैटर्न के भीतर प्रलेखित किया जाना चाहिए।
किसी पैटर्न का दस्तावेजीकरण करने के लिए यह अध्ययन करने के लिए की आवश्यकता होती है कि कोई विशेष स्थिति समस्याएँ क्यों उत्पन्न करती है, और समाधान देने के लिए पैटर्न के घटक एक-दूसरे से कैसे संबंधित होते हैं।<ref>{{cite web |access-date=2011-03-21 |first=James |last=Maioriello |date=2002-10-02 |title=What are design patterns and do I need them? |url=http://www.developer.com/design/article.php/1474561/What-Are-Design-Patterns-and-Do-I-Need-Them.htm |website=developer.com}}</ref> क्रिस्टोफर एलेक्जेंडर सरल डिज़ाइन समस्याओं को परस्पर एंटी बल से उत्पन्न होने वाली समस्याओं के रूप में वर्णित करते हैं- जैसे कि कक्ष में धूप होने की आवश्यकता और गर्मियों की दोपहर में इसे अधिक गर्म न होने देने के मध्य का संघर्ष पैटर्न डिज़ाइनर को यह नहीं बताएगा कि कक्ष में कितनी खिड़कियाँ लगानी हैं; इसके अतिरिक्त, यह डिज़ाइनर को ऐसे निर्णय की ओर मार्गदर्शन करने के लिए मानों का सेट प्रस्तावित करेगा जो उनके विशेष अनुप्रयोग के लिए सर्वोत्तम है। उदाहरण के लिए, अलेक्जेंडर का विचार है कि कक्ष के चारों ओर सीधी प्रकाश के लिए पर्याप्त खिड़कियाँ सम्मिलित की जानी चाहिए। वह इसे उत्तम समाधान मानते हैं क्योंकि उनका मानना ​​है कि इससे कक्ष में रहने वालों का आनंद बढ़ जाता है। अन्य लेखक भिन्न-भिन्न निष्कर्ष पर आ सकते हैं, यदि वे ऊर्जा व्यय, या सामग्री व्ययको अधिक महत्व देते हैं। ये मान, जो पैटर्न के लेखक द्वारा यह निर्धारित करने के लिए उपयोग किए जाते हैं कि कौन सा समाधान सबसे उत्तम है, जो पैटर्न के भीतर प्रलेखित किया जाना चाहिए।


पैटर्न दस्तावेज़ीकरण को यह भी स्पष्ट करना चाहिए कि यह कब लागू होता है। चूँकि दो घर एक-दूसरे से बहुत भिन्न हो सकते हैं, इसलिए घरों के लिए डिज़ाइन पैटर्न इतना व्यापक होना चाहिए कि उन दोनों पर लागू हो सके, लेकिन इतना अस्पष्ट नहीं कि यह डिज़ाइनर को निर्णय लेने में मदद न करे। स्थितियों की वह श्रृंखला जिसमें किसी पैटर्न का उपयोग किया जा सकता है उसे उसका संदर्भ कहा जाता है। कुछ उदाहरण सभी घर, सभी दो मंजिला घर, या वे सभी स्थान हो सकते हैं जहां लोग समय बिताते हैं।
पैटर्न दस्तावेज़ीकरण को यह भी स्पष्ट करना चाहिए कि यह कब प्रारम्भ होता है। चूँकि दो घर एक-दूसरे से अधिक भिन्न हो सकते हैं, इसलिए घरों के लिए डिज़ाइन पैटर्न इतना व्यापक होना चाहिए कि उन दोनों पर प्रारम्भ हो सके, किन्तु इतना अस्पष्ट नहीं कि यह डिज़ाइनर को निर्णय लेने में सहायता न करे। स्थितियों की वह श्रृंखला जिसमें किसी पैटर्न का उपयोग किया जा सकता है उसे उसका संदर्भ कहा जाता है। कुछ उदाहरण सभी घर, सभी दो मंजिला घर, या वे सभी स्थान हो सकते हैं जहां लोग समय बिताते हैं।


उदाहरण के लिए, क्रिस्टोफर अलेक्जेंडर के काम में, सर्जरी सेंटर में बस स्टॉप और वेटिंग रूम दोनों ही पैटर्न ए प्लेस टू वेट के संदर्भ में हैं।
उदाहरण के लिए, क्रिस्टोफर अलेक्जेंडर के कार्य में, सर्जरी सेंटर में बस स्टॉप और वेटिंग रूम दोनों ही पैटर्न ए प्लेस टू वेट के संदर्भ में हैं।


== उदाहरण ==
== उदाहरण ==


* [[ सॉफ़्टवेयर डिज़ाइन पैटर्न ]], सॉफ्टवेयर डिजाइन में
* [[ सॉफ़्टवेयर डिज़ाइन पैटर्न |सॉफ़्टवेयर डिज़ाइन पैटर्न]], सॉफ्टवेयर डिजाइन में
* सॉफ्टवेयर आर्किटेक्चर के लिए [[ वास्तुशिल्प पैटर्न ]]
* सॉफ्टवेयर आर्किटेक्चर के लिए [[ वास्तुशिल्प पैटर्न |आर्किटेक्चर पैटर्न]]
* [[इंटरेक्शन डिज़ाइन पैटर्न]], इंटरेक्शन डिज़ाइन/मानव-कंप्यूटर इंटरैक्शन में उपयोग किया जाता है
* [[इंटरेक्शन डिज़ाइन पैटर्न]], इंटरेक्शन डिज़ाइन/मानव-कंप्यूटर इंटरैक्शन में उपयोग किया जाता है
* शिक्षण में [[शैक्षणिक पैटर्न]]
* शिक्षण में [[शैक्षणिक पैटर्न]]
* [[पैटर्न बागवानी]], बागवानी में
* [[पैटर्न बागवानी|पैटर्न गार्डनिंग]], गार्डनिंग में


बिजनेस मॉडल में डिज़ाइन पैटर्न भी होते हैं।<ref>For example: {{cite journal |last1=Mettler |first1=Tobias |last2=Eurich |first2=Markus |date=June 2012 |title=A 'design-pattern'–based approach for analyzing e-health business models |journal=[[Health Policy and Technology]] |volume=1 |issue=2 |pages=77–85 |doi=10.1016/j.hlpt.2012.04.005}}</ref> देखना {{slink|बिजनेस मॉडल उदाहरण
बिजनेस मॉडल में डिज़ाइन पैटर्न भी होते हैं।<ref>For example: {{cite journal |last1=Mettler |first1=Tobias |last2=Eurich |first2=Markus |date=June 2012 |title=A 'design-pattern'–based approach for analyzing e-health business models |journal=[[Health Policy and Technology]] |volume=1 |issue=2 |pages=77–85 |doi=10.1016/j.hlpt.2012.04.005}}</ref> देखना {{slink|बिजनेस मॉडल उदाहरण
Line 32: Line 31:
* [[शैली गाइड]]
* [[शैली गाइड]]
* डिज़ाइन प्रतिमान
* डिज़ाइन प्रतिमान
*[[विरोधी पैटर्न]]
*[[विरोधी पैटर्न|एंटी पैटर्न]]
* [[ गहरा पैटर्न ]]
* [[ गहरा पैटर्न | डार्क पैटर्न]]


== संदर्भ ==
== संदर्भ ==

Revision as of 17:09, 3 July 2023

डिज़ाइन पैटर्न किसी डिज़ाइन समस्या के समाधान का पुन: प्रयोज्य रूप है। यह विचार आर्किटेक्ट क्रिस्टोफर अलेक्जेंडर द्वारा प्रस्तुत किया गया था[1] और इसे विभिन्न अन्य विषयों, विशेष रूप से सॉफ्टवेयर इंजीनियरिंग के लिए अनुकूलित किया गया है।[2]

विवरण

किसी विशेष क्षेत्र से संबंधित डिज़ाइन पैटर्न का संगठित संग्रह पैटर्न भाषा कहलाता है। यह भाषा उन स्थितियों पर वर्णन करने के लिए सामान्य शब्दावली प्रदान करती है जिनका डिजाइनरों को सामना करना पड़ता है।

इस भाषा के एलिमेंट इकाइयां हैं जिन्हें पैटर्न कहा जाता है। प्रत्येक पैटर्न समस्या का वर्णन करता है जो हमारे वातावरण में बार-बार होती है, और फिर उस समस्या के समाधान के मूल का वर्णन करती है, इस प्रकार से कि आप इस समाधान का उपयोग एक ही विधि से दो बार किए बिना, लाखों बार कर सकते हैं। .

— क्रिस्टोफर अलेक्जेंडर, पैटर्न भाषा[1]

किसी पैटर्न का दस्तावेजीकरण करने के लिए यह अध्ययन करने के लिए की आवश्यकता होती है कि कोई विशेष स्थिति समस्याएँ क्यों उत्पन्न करती है, और समाधान देने के लिए पैटर्न के घटक एक-दूसरे से कैसे संबंधित होते हैं।[3] क्रिस्टोफर एलेक्जेंडर सरल डिज़ाइन समस्याओं को परस्पर एंटी बल से उत्पन्न होने वाली समस्याओं के रूप में वर्णित करते हैं- जैसे कि कक्ष में धूप होने की आवश्यकता और गर्मियों की दोपहर में इसे अधिक गर्म न होने देने के मध्य का संघर्ष पैटर्न डिज़ाइनर को यह नहीं बताएगा कि कक्ष में कितनी खिड़कियाँ लगानी हैं; इसके अतिरिक्त, यह डिज़ाइनर को ऐसे निर्णय की ओर मार्गदर्शन करने के लिए मानों का सेट प्रस्तावित करेगा जो उनके विशेष अनुप्रयोग के लिए सर्वोत्तम है। उदाहरण के लिए, अलेक्जेंडर का विचार है कि कक्ष के चारों ओर सीधी प्रकाश के लिए पर्याप्त खिड़कियाँ सम्मिलित की जानी चाहिए। वह इसे उत्तम समाधान मानते हैं क्योंकि उनका मानना ​​है कि इससे कक्ष में रहने वालों का आनंद बढ़ जाता है। अन्य लेखक भिन्न-भिन्न निष्कर्ष पर आ सकते हैं, यदि वे ऊर्जा व्यय, या सामग्री व्ययको अधिक महत्व देते हैं। ये मान, जो पैटर्न के लेखक द्वारा यह निर्धारित करने के लिए उपयोग किए जाते हैं कि कौन सा समाधान सबसे उत्तम है, जो पैटर्न के भीतर प्रलेखित किया जाना चाहिए।

पैटर्न दस्तावेज़ीकरण को यह भी स्पष्ट करना चाहिए कि यह कब प्रारम्भ होता है। चूँकि दो घर एक-दूसरे से अधिक भिन्न हो सकते हैं, इसलिए घरों के लिए डिज़ाइन पैटर्न इतना व्यापक होना चाहिए कि उन दोनों पर प्रारम्भ हो सके, किन्तु इतना अस्पष्ट नहीं कि यह डिज़ाइनर को निर्णय लेने में सहायता न करे। स्थितियों की वह श्रृंखला जिसमें किसी पैटर्न का उपयोग किया जा सकता है उसे उसका संदर्भ कहा जाता है। कुछ उदाहरण सभी घर, सभी दो मंजिला घर, या वे सभी स्थान हो सकते हैं जहां लोग समय बिताते हैं।

उदाहरण के लिए, क्रिस्टोफर अलेक्जेंडर के कार्य में, सर्जरी सेंटर में बस स्टॉप और वेटिंग रूम दोनों ही पैटर्न ए प्लेस टू वेट के संदर्भ में हैं।

उदाहरण

बिजनेस मॉडल में डिज़ाइन पैटर्न भी होते हैं।[4] देखना बिजनेस मॉडल उदाहरण § Notes.

यह भी देखें

संदर्भ

  1. 1.0 1.1 Alexander, Christopher (1977). A Pattern Language: Towns, Buildings, Construction. Center for Environmental Structure series. Vol. 2. New York: Oxford University Press. ISBN 0-19-501919-9. OCLC 3132495.
  2. Gamma, Erich; Helm, Richard; Johnson, Ralph; Vlissides, John (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley professional computing series. Reading, Mass.: Addison-Wesley. ISBN 0-201-63361-2. OCLC 31171684. The "Gang of Four" book.
  3. Maioriello, James (2002-10-02). "What are design patterns and do I need them?". developer.com. Retrieved 2011-03-21.
  4. For example: Mettler, Tobias; Eurich, Markus (June 2012). "A 'design-pattern'–based approach for analyzing e-health business models". Health Policy and Technology. 1 (2): 77–85. doi:10.1016/j.hlpt.2012.04.005.


अग्रिम पठन