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