Junior
Kompozisiya və agregasiya arasındakı fərq nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Kompazisiya və agregasiya obyektlər arasında "hissə-bütöv" münasibətləridir.
-
Kompazisiya: Qətiyyətli münasibət, burada hissə bütəndən ayrı ola bilməz. Bütünü silmək həm də hissələri silir. Asılı hissənin həyat dövrü bütöv tərəfindən tam müəyyən edilir. Məsələn: Otaqlar (hissələr) Evin (bütöv) içində. Ev olmasa, otaqlar mövcud deyil.
// Kompazisiya nümunəsi: class Room { private String name; public Room(String name) { this.name = name; } // ... Room metodları } class House { private List<Room> rooms = new ArrayList<>(); // Hissələr bütöv tərəfindən yaradılır və idarə olunur public House() { rooms.add(new Room("Living Room")); // Hissəni bütöv daxilində yaratmaq rooms.add(new Room("Bedroom")); } // ... House metodları } -
Agregasiya: Daha zəif münasibət, burada hissə müstəqil mövcud ola bilər. Bütünü silmək, mütləq şəkildə hissələri silmir. Hissələr müxtəlif obyektlərlə əlaqəli ola bilər. Məsələn: Avtomobil (bütöv) və Təkərlər (hissələr). Təkərlər avtomobildən müstəqil mövcud ola bilər və başqa avtomobildə istifadə oluna bilər.
// Agregasiya nümunəsi: class Wheel { private int size; public Wheel(int size) { this.size = size; } // ... Wheel metodları } class Car { private List<Wheel> wheels = new ArrayList<>(); // Bütöv, hissələrə istinadlar ehtiva edir public Car(List<Wheel> wheels) { this.wheels = wheels; // Xaricdən hissələr alınır } // ... Car metodları } // Yaratma və istifadə nümunəsi: List<Wheel> myWheels = new ArrayList<>(); myWheels.add(new Wheel(16)); myWheels.add(new Wheel(16)); // ... Car myCar = new Car(myWheels); // Agregasiya: Təkərlər avtomobildən əvvəl və sonra mövcud ola bilər
Əsas fərqlər cədvəldə:
| Kriteriy | Kompazisiya | Agregasiya |
|---|---|---|
| Asılılıq | Qəti: Hissə bütündən asılıdır | Zəif: Hissə müstəqil ola bilər |
| Həyat dövrü | Hissə bütöv tərəfindən idarə olunur | Hissə mütləq bütöv tərəfindən idarə olunmaya bilər |
| Bütöv silindikdə | Hissələrin silinməsinə səbəb olur | Zorunlu deyil, hissələri silmir |
| Çoxsaylı əlaqələr | Hissə yalnız bir bütövlə əlaqəlidir | Hissə bir neçə bütə bağlı ola bilər |
| UML diagramı | Dolu romb bütöv tərəfdə | Boş romb bütöv tərəfdə |