Sobes.tech
Back to questions
Junior — Middle
63

Можете объяснить, что означает принцип композиции в объектно-ориентированном программировании?

Companies where asked
СБЕР Бизнес
АО К-Технологии

Answer from AI

sobes.tech AI

Принцип композиции в объектно-ориентированном программировании означает построение сложных объектов из более простых, путем включения одних объектов внутрь других. Вместо наследования, где класс расширяет другой класс, композиция позволяет создавать объекты, которые содержат другие объекты как свои части, делегируя им часть функциональности.

Например, если у вас есть класс Автомобиль, он может содержать объект класса Двигатель. Вместо того, чтобы Автомобиль наследовал Двигатель, он просто использует его как часть себя. Это повышает гибкость и повторное использование кода.

Пример на Python:

class Engine:
    def start(self):
        print("Двигатель запущен")

class Car:
    def __init__(self):
        self.engine = Engine()  # композиция

    def start(self):
        self.engine.start()  # делегирование вызова

car = Car()
car.start()  # Выведет: Двигатель запущен

Таким образом, композиция позволяет строить сложные объекты из простых компонентов, улучшая модульность и облегчая поддержку кода.