जोश का जवाब बहुत बढ़िया है, लेकिन मैं जोड़ना चाहूंगा:
इकाई / घटक की सबसे अच्छी विशेषताओं में से एक डेटा-चालित तरीका है जिसमें आपके खेल की हर "चीज़" बनाई और प्रबंधित की जाती है। मैंने जो कुछ भी देखा है, उसमें से एक बार आपके पास घटक प्रकार और प्रणालियों का एक अच्छा पुस्तकालय है, तो आप न्यूनतम कोड संशोधनों के साथ कुछ भी बना सकते हैं। (नोट: न्यूनतम! = 0 )
व्यवहार के संदर्भ में अपने खेल को परिभाषित करके, और अपने आप को मक्खी पर उन व्यवहारों को संशोधित करने की क्षमता प्रदान करते हैं - रनटाइम के दौरान, उन्हें स्क्रिप्ट या डेटाबेस से लोड करने के लिए प्रारंभ करने के दौरान, आदि - आप नई संभावनाओं की एक पूरी दुनिया खोलते हैं। यह देखना चाहते हैं कि आपकी छाया वहां क्यों नहीं उतरेगी जहां आप उम्मीद करेंगे? अपने प्रकाश में एक कैमरा / पीओवी घटक जोड़ें।
इकाई / घटक से आप अपनी इच्छानुसार कुछ भी बना सकते हैं, जब तक आपने ब्लॉक बनाए हैं।
इसके अलावा, एकाधिक वंशानुक्रम एकल विरासत के समान समस्या का कारण बनता है। जब आप पदानुक्रम में एक विशेषता या व्यवहार जोड़ते हैं, तो यह प्रचारित करता है। जब तक आप गहरी पदानुक्रम बना रहे हैं, तब तक आप उन परिस्थितियों में भाग लेंगे जहाँ आप अनावश्यक भार उठा रहे हैं, कोड डुप्लिकेट कर रहे हैं, या विरोधों को हल कर रहे हैं। जब आप अपने खेल को डेटा के रूप में कल्पना करते हैं, तो इससे बचा जा सकता है।
मैंने पिछले कुछ हफ्तों में इसके साथ खेलना शुरू किया है, लेकिन मैं इस बात से प्रभावित हूं कि साधारण चीजें कैसे बन गई हैं। यह एक चांदी की गोली नहीं है - मैंने कुछ मामलों में चलाया है जहां एक लैम्बडा को एक घटक के साथ संलग्न करना एक समस्या को हल करने का सबसे साफ और सबसे तेज तरीका था - लेकिन यह एक बहुत अच्छा पैटर्न है, अगर आप इसे कॉल कर सकते हैं।
थोड़ा संबंधित नोट पर: डेटा-केंद्रित अनुप्रयोगों (वेबसाइटों, आदि) में बड़े, उबाऊ रखरखाव जनरेटर में से एक रिलेशनल डेटाबेस में पदानुक्रमित वस्तुओं का मानचित्रण कर रहा है। हम चारों ओर बहुत सारे निफ्टी समाधान प्राप्त कर चुके हैं, लेकिन वे अंततः सभी हैक को पदानुक्रम को समतल करने के लिए डिज़ाइन किए गए हैं। अपने मॉडल के निर्माण के बजाय ताकि यह एप्लिकेशन के उद्देश्य को पूरा करे, आप एक प्रभावी पदानुक्रम और एक तार्किक तर्कसंगत प्रतिनिधित्व के बीच समझौता करते हैं। मैं अपने ऐप में एक इकाई / घटक प्रणाली के रूप में एक बहुत बड़ी पदानुक्रम के पुनर्निर्माण के विचार के साथ कर रहा हूँ - पदानुक्रम को खोदो और बाकी कार्यान्वयन के लिए डेटाबेस को गोल्ड स्टैंडर्ड बनाओ - और यह आशाजनक है।
जब आप गतिशील कोड जनरेशन / कोड कैशिंग जैसी क्षमताओं को एकीकृत करते हैं जो प्रदर्शन के मुद्दों को संबोधित कर सकते हैं, तो आप एक तेज, लचीली, तार्किक वास्तुकला के साथ हवा देते हैं जो कि ओओपी के पुन: प्रयोज्य कोड लक्ष्य को बहुत बेहतर तरीके से महसूस कर सकते हैं।