কম্পোজিশন (Composition) - Strong "has-a"
প্যারেন্ট অবজেক্ট ডিলিট হলে চাইল্ড ও ডিলিট হয়। লাইফসাইকেল বাঁধা। উদাহরণ: Car এবং Engine।
public class Engine { ... }
public class Car
{
Engine eng = new Engine(); // Car তৈরি হলে Engine তৈরি, Car ডিলিট হলে Engine ডিলিট
}
অ্যাগ্রিগেশন (Aggregation) - Weak "has-a"
প্যারেন্ট এবং চাইল্ডের লাইফসাইকেল স্বাধীন। চাইল্ড বাইরে থেকে আসে। উদাহরণ: Employee এবং Address।
public class Address { ... }
public class Employee
{
private Address addr;
public Employee(Address addr) { this.addr = addr; } // বাইরে থেকে পাস করা হয়
}
পার্থক্য
- কম্পোজিশন: আংশিক সম্পর্ক, লাইফসাইকেল ডিপেন্ডেন্ট
- অ্যাগ্রিগেশন: সংযুক্তি, লাইফসাইকেল স্বাধীন