रचना और एकत्रीकरण
कक्षाएं और वस्तुएं एक दूसरे से संबंधित हो सकती हैं। वंशानुक्रम एक "IS A" संबंध का वर्णन करता है। एक शेर एक जानवर है। यह संबंध आसानी से वंशानुक्रम का उपयोग करके व्यक्त किया जाता है, जहां
Animal
माता-पिता वर्ग होगा और
Lion
बच्चा होगा। लेकिन दुनिया में हर रिश्ते को इस तरह ठीक से वर्णित नहीं किया जाता है। उदाहरण के लिए, एक कीबोर्ड का निश्चित रूप से कंप्यूटर के साथ कुछ संबंध होता है, लेकिन
यह कंप्यूटर नहीं है । हाथों का इंसान से कुछ नाता है, लेकिन वो इंसान नहीं हैं। ये मामले एक अलग प्रकार के रिश्ते का प्रतिनिधित्व करते हैं - "आईएस ए" नहीं, बल्कि "हैस ए"। हाथ एक व्यक्ति नहीं हैं, लेकिन एक व्यक्ति के हाथ हैं। कीबोर्ड कंप्यूटर नहीं है, लेकिन कंप्यूटर में कीबोर्ड होता है। "एक"
. इन अवधारणाओं के बीच का अंतर रिश्तों की "कठोरता" में निहित है। आइए एक सरल उदाहरण लें: हमारे पास एक
Car
. हर कार में एक इंजन होता है। इसके अतिरिक्त, हर कार यात्रियों को ले जा सकती है।
Engine engine
और क्षेत्रों के बीच मूलभूत अंतर क्या है
Passenger[] passengers
? यदि यात्री
A
कार के अंदर बैठा है, तो इसका मतलब यह नहीं है कि यात्री
B
कार
C
में नहीं हो सकता है। एक कार कई यात्रियों को समायोजित कर सकती है। क्या अधिक है, सभी यात्री कार से बाहर निकल सकते हैं, फिर भी यह सुचारू रूप से कार्य करता रहेगा।
Car
वर्ग और सरणी के बीच का संबंध
Passenger[] passengers
कम सख्त है। इसे
एकत्रीकरण कहा जाता है । यहाँ इस विषय पर एक अच्छा लेख है:
वर्गों (वस्तुओं) के बीच संबंध. यह एकत्रीकरण का एक और अच्छा उदाहरण प्रदान करता है। मान लीजिए कि हमारे पास एक
Student
कक्षा है जो एक छात्र का प्रतिनिधित्व करती है, और एक
StudentGroup
जो छात्रों के एक समूह का प्रतिनिधित्व करती है। एक छात्र एक भौतिकी क्लब, एक स्टार वार्स छात्र फैन क्लब या एक कॉमेडी क्लब का सदस्य हो सकता है।
रचना एक कठोर प्रकार का संबंध है। रचना का उपयोग करते समय, एक वस्तु के पास एक और वस्तु होती है, लेकिन यह उसी प्रकार की दूसरी वस्तु से संबंधित नहीं हो सकती। सबसे सरल उदाहरण एक कार इंजन है। अगर किसी कार में इंजन है, तो वह इंजन किसी दूसरी कार का नहीं हो सकता।
Car
जैसा कि आप देख सकते हैं, वह रिश्ता और की तुलना में बहुत सख्त है
Passengers
।
GO TO FULL VERSION