Junior
Bileşim ile bütünleşme arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Bileşim ve agregasyon, nesneler arasında "parça-bütün" ilişkileridir.
-
Bileşim: Parçanın bütün olmadan var olamayacağı katı ilişki. Bütünün silinmesi, parçaların da silinmesine neden olur. Bağımlı parçanın yaşam döngüsü tamamen bütün tarafından belirlenir. Örnek: Bir Evdeki Odalar (parçalar). Ev olmadan odalar var olamaz.
// Bileşim örneği: class Room { private String name; public Room(String name) { this.name = name; } // ... Room metodları } class House { private List<Room> rooms = new ArrayList<>(); // Parçalar, bütün tarafından oluşturulur ve yönetilir public House() { rooms.add(new Room("Living Room")); // Bütün içinde parça oluşturma rooms.add(new Room("Bedroom")); } // ... House metodları } -
Agregasyon: Daha zayıf ilişki, parçanın bağımsız olarak var olabileceği. Bütünün silinmesi, parçaların silinmesine zorunlu değil. Parçalar, farklı nesnelerle ilişkili olabilir. Örnek: Araba (bütün) ve Tekerlekler (parçalar). Tekerlekler, arabadan bağımsız olarak var olabilir ve başka araçlarda kullanılabilir.
// Agregasyon örneği: class Wheel { private int size; public Wheel(int size) { this.size = size; } // ... Wheel metodları } class Car { private List<Wheel> wheels = new ArrayList<>(); // Bütün, parçalara referanslar içerir public Car(List<Wheel> wheels) { this.wheels = wheels; // Dışarıdan parçalar alınır } // ... Car metodları } // Oluşturma ve kullanma örneği: List<Wheel> myWheels = new ArrayList<>(); myWheels.add(new Wheel(16)); myWheels.add(new Wheel(16)); // ... Car myCar = new Car(myWheels); // Agregasyon: Tekerlekler, araçtan önce ve sonra var olabilir
Tablodaki temel farklar:
| Kriter | Bileşim | Agregasyon |
|---|---|---|
| Bağımlılık | Katı: Parça, bütün olmadan var olamaz | Zayıf: Parça, bağımsız olarak var olabilir |
| Yaşam döngüsü | Parça, bütün tarafından yönetilir | Parça, mutlaka bütün tarafından yönetilmek zorunda değildir |
| Bütün silindiğinde | Parçaların silinmesine yol açar | Parçaların silinmesine zorunlu değildir |
| Çoklu ilişkiler | Parça sadece bir bütünle ilişkilidir | Parça, birden fazla bütünle ilişkilendirilebilir |
| UML diyagramı | Dolu rombüs, bütün tarafında | Boş rombüs, bütün tarafında |