ऑब्जेक्ट-ओरिएंटेड सिस्टम, पैराडाइम और दर्शन
(black7375.tistory.com)-
class और prototype के बीच सबसे बड़ा अंतर object बनाने के तरीके में है [class -> instance vs object -> copied object].
-
सबसे बड़ी समानता यह है कि दोनों object-oriented हैं, और प्रोग्राम को object नाम की इकाइयों में बाँटकर उन्हें परस्पर इंटरैक्ट करने देते हैं.
-
object-oriented के मूल तत्व encapsulation को अच्छी तरह करने का सबसे सरल तरीका है abstraction को अच्छी तरह करना.
-
abstraction को data-केंद्रित गुणों (classical OOP), रूप (type), state (data-driven design) और संबंध-केंद्रित time (procedural), behavior (functional), definition (logical), context (domain-driven design, AOP) आदि में बाँटकर सोचा जा सकता है.
-
अच्छी classification और design के लिए, सोच के रूपों को पहचानने में मदद करने वाली विभिन्न श्रेणियों की समझ होना उपयोगी है [उदा.) Kant की 4 categories और 12 subcategories].
-
-
दर्शन और paradigm
-
procedural: time अधिकांश abstractions को प्रभावित करता है, और Goto जैसी ऐसी syntax अच्छी नहीं है जो context को आपस में मिला दे.
-
functional: क्योंकि यह behavior के रूप में व्यक्त करने की कोशिश करता है, इसलिए type (रूप) से इसका गहरा संबंध है.
-
logical: facts और rules से logic बनाकर, query करने पर predicate logic का परिणाम पाया जा सकता है.
-
पारंपरिक OOP: सहज है. लेकिन पूर्ण attributes को पहचान लेना असंभव है.
-
data-driven design: logic की state को संभालने की कोशिश करने वाले functional दृष्टिकोण से अलग, यह computer स्वयं में state को कम करने की कोशिश करता है. cache hit बढ़ाकर performance में सुधार लाता है.
-
domain-driven design: पारंपरिक OOP से अलग, domain और context के अनुसार design बदलता है (picture theory-use semantics से मिलता-जुलता), और subdomain में dependency injection करने वाला AOP इस्तेमाल करें तो implementation आसान हो जाता है.
-
-
MVP
-
prototype निर्माण: इसमें महत्वपूर्ण features शामिल होने चाहिए, और यह designer, developer, finance आदि के नज़रिए के अनुसार बदल सकता है. जिन products को बहुत लोग महत्वपूर्ण मानते हैं, उनके साथ समानता के आधार पर इसके विशिष्ट requirements बनते हैं.
-
MVP: ऐसा होना चाहिए कि न्यूनतम पूर्णता के साथ उपयोग संभव हो, और इसे उस product के समान रूप में design करना चाहिए जिसे अंतिम चरण का product माना जा रहा है.
-
-
object-oriented और अस्तित्व
-
Plato: उनका दावा था कि universal गुण अपरिवर्तनीय, वास्तविक और विद्यमान हैं, जबकि individual अस्तित्व universal विशेषताओं से रहित होकर मौजूद होते हैं.
-
Aristotle: उनका दावा था कि केवल individual entities ही मूल substance हैं, और universals ऊपर-नीचे/समावेशन संबंधों में प्रकट होने वाले representations हैं.
-
class-instance Plato के theory of Ideas से, जबकि prototype-copied object Aristotle के substance theory से मिलते-जुलते हैं.
-
शुरुआत में जो लक्ष्य लिखना चाहता था, वे थे
-
पारंपरिक OOP picture theory से, और domain-driven design use semantics से मिलता-जुलता है.
-
class-instance Plato के theory of Ideas से, जबकि prototype-copied object Aristotle के substance theory से मिलते-जुलते हैं.
यही दो बातें थीं, लेकिन लिखते-लिखते अपेक्षा से काफी लंबा हो गया.
अगर पृष्ठभूमि ज्ञान बिल्कुल न हो, तो यह थोड़ा कठिन लग सकता है.
6 टिप्पणियां
JavaScript ने prototype क्यों चुना
https://hi.news.hada.io/topic?id=5532
इसे देखते हुए यह विचार आया, इसलिए यह लिखा है।
आइए इसे इस लेख के साथ तुलना करते हुए एक बार पढ़ते हैं!
धन्यवाद!!
अरे? लगता है कई सारे spaces डालना काम नहीं करता T_T
आह, कुछ मामले ऐसे थे जहाँ जानबूझकर space लिया जा रहा था..
इसलिए खाली lines और कई blank spaces को कम कर दिया है, हाय
समझ गया।
अगली बार पोस्ट करते समय इसे ध्यान में रखना होगा।