Junior — Middle
Тафовутҳои байни муносибатҳои агрегатсия ва компози дар барномасозии объектӣ чӣ гуна аст?
sobes.tech AI
Ҷавоб аз AI
Агрегация ва композиция — ин ду намуди муносибатҳо байни объектҳо дар барномасозии объектӣ мебошанд, ки нишон медиҳанд, чӣ гуна объектҳо ба ҳам пайваст мешаванд.
-
Агрегация: ин муносибати "дор" (has-a) мебошад, ки дар он як объект дигарро дар бар мегирад, аммо давраи зиндагии объекти дохилӣ аз контейнер вобаста нест. Объекти дохилӣ метавонад мустақилона вуҷуд дошта бошад.
-
Композиция: шакли қавитарини агрегатсия, ки дар он объекти дохилӣ ба пуррагӣ ба контейнер тааллуқ дорад ва мустақилона вуҷуд надорад. Агар контейнер нобуд шавад, объекти дохилӣ низ нобуд мешавад.
Масалан:
class Engine {}
// Агрегация: Car дорои Engine аст, аммо Engine метавонад мустақилона вуҷуд дошта бошад
class Car {
var engine: Engine?
}
// Композиция: House аз Rooms иборат аст, ки бидуни хона вуҷуд надоранд
class Room {}
class House {
var rooms: [Room] = []
init() {
rooms = [Room(), Room()]
}
}
Дар композиция, объектҳо ба ҳам сахт пайваст шудаанд ва бо ҳам идора мешаванд, дар ҳоле ки дар агрегатсия, муносибат заифтар аст.