2012-10-21 26 views
6

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

संकल्पनात्मक रूप से एक इकाई घटक का एक बैग है, जो सिस्टम की श्रृंखला द्वारा संभाले जाने वाले डेटा के बैग से अधिक कुछ नहीं है। तो यह मेरे लिए तार्किक प्रतीत होता है कि एक इकाई वस्तु का उपयोग इसके साथ जुड़े सभी घटकों को पकड़ने के लिए किया जा सकता है, लेकिन अन्य के काम अन्यथा कहते हैं। मेरे सभी शोधों में यह लगभग सार्वभौमिक रूप से समझा जाता है कि एक इकाई एक आईडी से अधिक कुछ नहीं है और आपको ऑब्जेक्ट ओरिएंटेड सोच के जाल में गिरने वाली हर कीमत से बचना चाहिए। वे इसके बजाय प्रबंधक में घटकों को संग्रहित करने का सुझाव देते हैं, लेकिन इस तरह के डिज़ाइन के फायदे को सीधे संबोधित किए बिना।

दोनों डिज़ाइन, प्रबंधक में इकाई बनाम घटकों में आयोजित घटकों का परिणाम न ही अंत परिणाम में होता है? अगर मुझे गलतफहमी/कुछ याद आ रही है तो कृपया मुझे बताएं।

उत्तर

1

मैं एंटिटी कंपोनेंट सिस्टम के साथ कोई विशेषज्ञ नहीं हूं, लेकिन मैंने जो पढ़ा है उससे विषय पर मेरा विचार है।

मुझे लगता है कि आपको सीधे घटकों तक पहुंच नहीं लेनी चाहिए। यदि आप करते हैं, तो आपके घटकों को एक-दूसरे पर भरोसा करना शुरू हो जाता है, और बाद में, जब आप यह तय करते हैं कि आप एक घटक कैसे व्यवहार करते हैं, यह बदलने के लिए चाहते हैं, तो उन सभी अन्य घटकों पर निर्भर रहना जिन्हें आप बदलना चाहते हैं, को ठीक करना होगा।

इस समस्या से बचने के लिए, घटकों को एक-दूसरे के बारे में कुछ नहीं पता होना चाहिए। उनमें से प्रत्येक के पास एक नौकरी होती है और केवल उस नौकरी पर ध्यान देना चाहिए। यदि किसी अन्य घटक से कुछ डेटा की आवश्यकता है (उदाहरण के लिए, आपको स्थितित्मक डेटा की आवश्यकता हो सकती है), तो आपको या तो डेटा के लिए एक और सिस्टम पूछना चाहिए, या मैसेजिंग सिस्टम विकसित करना चाहिए।

बेशक, एक बार जब आप वास्तव में कोडिंग शुरू करते हैं, तो इस नियम का अनुपालन करना मुश्किल है, लेकिन आपको यह विचार मिलता है।

किसी इकाई में घटकों को संग्रहीत करने से बचने का एक अन्य कारण गति के लिए है। जब घटक सिस्टम में निहित होते हैं (जहां सभी समान घटक एक साथ संग्रहीत होते हैं), तो आप बड़ी मात्रा में घटकों को संसाधित कर सकते हैं। आपके पास पुन: उपयोग किए जा सकने वाले किसी भी डेटा को सेट करने का मौका है, प्रत्येक घटक के माध्यम से लूप करें और प्रक्रिया करें, और उसके बाद किसी भी पुन: उपयोग किए गए डेटा को रिलीज़ करें। न केवल यह, लेकिन प्रत्येक प्रणाली एक अलग धागे पर चलाने में सक्षम हो सकती है, जो आपको आसानी से एकाधिक कोर का लाभ लेने की अनुमति देती है।

फिर, व्यावहारिक रूप से, यह हमेशा 100% सत्य नहीं होता है, लेकिन यह सिद्धांत है।

संक्षेप में, इकाई के बजाए सिस्टम में घटकों को रखने से घटकों तक पहुंचने की प्रलोभन कम हो जाती है, और सिस्टम में थोक अपडेट की अनुमति मिलती है। मुझे उम्मीद है कि यह मदद करता है, और यदि आपके कोई प्रश्न हैं, तो कृपया मुझे बताएं।