Junior — Middle
Nesne yönelimli programlamada agregasyon ve kompozisyon arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
Yığılma ve bileşim, nesne yönelimli programlamada (OOP) nesneler arasındaki iki ilişki türüdür ve nesnelerin birbirleriyle nasıl bağlantılı olduğunu açıklar.
-
Yığılma: "sahip olma" (has-a) ilişkisi olup, bir nesne başka bir nesneyi içerir, ancak iç içe nesnenin yaşam döngüsü kapsayıcıya bağlı değildir. İç nesne bağımsız olarak var olabilir.
-
Bileşim: daha güçlü bir yığılma biçimidir ve içteki nesne tamamen kapsayıcıya aittir ve ayrı ayrı var olamaz. Kapsayıcı yok edildiğinde, iç nesne de yok olur.
Örnek:
class Engine {}
// Yığılma: Car, Engine'e sahiptir, ancak Engine bağımsız olarak var olabilir
class Car {
var engine: Engine?
}
// Bileşim: House, Rooms'tan oluşur, odalar ev olmadan var olamaz
class Room {}
class House {
var rooms: [Room] = []
init() {
rooms = [Room(), Room()]
}
}
Bileşimde, nesneler sıkı sıkıya bağlıdır ve birlikte yönetilir, yığılmada ise bağ daha zayıftır.