Aggregation in Java

What is Aggregation in Java

Aggregation, association का एक विशेष रूप है। यह association की तरह दो classes के बीच का relation है, हालांकि इसका एक directional association है, जिसका अर्थ है कि यह one-way association है। यह HAS-A relation का प्रतिनिधित्व करता है।

Java में Aggregation का उदाहरण

उदाहरण के लिए यदि हम दो classes पर विचार करें Student class और Address class| प्रत्येक Student का एक Address होता है, इसलिए Student और Address के बीच का relation एक HAS-A relation है। लेकिन यदि इसके विपरीत पर विचार किया जाये तो इसका कोई मतलब नहीं होगा क्योंकि एक Address के लिए एक Student का होना आवश्यक नहीं है। चलिए इसे एक उदाहरण में माध्यम से देखते है

class Address
{
int streetNum;
String city;
String state;
String country;
Address(int street, String c, String st, String coun)
{
this.streetNum=street;
this.city =c;
this.state = st;
this.country = coun;
}
}
class StudentClass
{
int rollNum;
String studentName;
//Creating HAS-A relationship with Address class
Address studentAddr;
StudentClass(int roll, String name, Address addr){
this.rollNum=roll;
this.studentName=name;
this.studentAddr = addr;
}
public static void main(String args[]){
Address ad = new Address(55, “Agra”, “UP”, “India”);
StudentClass obj = new StudentClass(123, “Chaitanya”, ad);
System.out.println(obj.rollNum);
System.out.println(obj.studentName);
System.out.println(obj.studentAddr.streetNum);
System.out.println(obj.studentAddr.city);
System.out.println(obj.studentAddr.state);
System.out.println(obj.studentAddr.country);
}
}

परिणाम (Output):
123
Chaitanya
55
Agra
UP
India

उपरोक्त उदाहरण Student class और Address class के बीच Aggregation को दर्शाता है। आप देख सकते हैं कि Student class में student का address प्राप्त करने के लिए Address type की property declare की है, यह जावा में Aggregation का एक विशिष्ट उदाहरण है।


Aggregation की आवश्यकता क्यों होती है?

Code की reusability बनाए रखने के लिए Aggregation की आवश्यकता होती है ।


इसे समझने के लिए फिर से एक उदाहरण लेते हैं। मान लीजिए कि दो class Student class और Address class के साथ दो अन्य class College and Staff हैं। Student address, College Address और Staff address बनाए रखने के लिए हमें बार-बार एक ही कोड का उपयोग करने की आवश्यकता नहीं है। हमें इनमें से प्रत्येक class को परिभाषित करने के लिए Address class के reference का उपयोग करना होगा|

Student Has-A Address (Has-a relationship between student and address)
College Has-A Address (Has-a relationship between college and address)
Staff Has-A Address (Has-a relationship between staff and address)

तो इस प्रकार Aggregation relation का उपयोग करते हुए code-reusability में सुधार किया जा सकता है|

यदि इसके लिए एक program लिखा जाये तो वह कुछ इस प्रकार लिखा जायेगा

class Address
{
int streetNum;
String city;
String state;
String country;
Address(int street, String c, String st, String coun)
{
this.streetNum=street;
this.city =c;
this.state = st;
this.country = coun;
}
}
class StudentClass
{
int rollNum;
String studentName;
//Creating HAS-A relationship with Address class
Address studentAddr;
StudentClass(int roll, String name, Address addr){
this.rollNum=roll;
this.studentName=name;
this.studentAddr = addr;
}

}
class College
{
String collegeName;
//Creating HAS-A relationship with Address class
Address collegeAddr;
College(String name, Address addr){
this.collegeName = name;
this.collegeAddr = addr;
}

}
class Staff
{
String employeeName;
//Creating HAS-A relationship with Address class
Address employeeAddr;
Staff(String name, Address addr){
this.employeeName = name;
this.employeeAddr = addr;
}

}

जैसा कि आप देख सकते हैं कि हमने तीन में से किसी भी class में address code नहीं लिखा है, हमने address code का उपयोग करने के लिए Address class के साथ बस एक relation बनाया है। उपरोक्त कोड में dot dot (…) भाग को public static void main method से प्रतिस्थापित(replace) किया जा सकता है, इसमें कोड वही होगा जो हमने पहले उदाहरण में देखा है।


error: Content is protected !!