Junior — Middle
რა იგულისხმება ობიექტზე ორიენტირებულ პროგრამირებაში კომპოზიციის კონცეფციაში?
sobes.tech AI
პასუხი AI-სგან
ობიექტზე ორიენტირებული პროგრამირების სფეროში, კომპოზიცია არის პრინციპი, რომლის მიხედვითაც ერთი ობიექტი შეიცავს სხვა ობიექტების მითითებებს, რათა გამოიყენოს მათი ფუნქციონალობა. ეს არის გზა, როგორ აშენებს რთულ ობიექტებს მარტივებიდან, სადაც ერთი ობიექტი "შეადგენს" სხვა ობიექტებისგან.
კომპოზიცია განსხვავდება მემკვიდრეობით იმით, რომ მემკვიდრეობის ნაცვლად, ობიექტი შეიცავს სხვა ობიექტებს და მათ ნაწილობრივ მუშაობას ანიჭებს. ეს ზრდის კოდის მოქნილობას და გადამეორებად გამოყენებას.
მაგალითი Swift-ში:
class Engine {
func start() {
print("ძრავი ჩართულია")
}
}
class Car {
private let engine = Engine() // კომპოზიცია: Car შეიცავს Engine-ს
func startCar() {
engine.start() // ძრავის დაწყების დელეგირება
}
}
let car = Car()
car.startCar() // გამოიტანს: ძრავი ჩართულია
აქ, Car კლასი შედგება Engine ობიექტისგან და იყენებს მის მეთოდებს, მემკვიდრეობის გარეშე.