Sobes.tech
Назад к вопросам
Junior — Middle
64

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

Компании, где спрашивали
СБЕР Бизнес
АО К-Технологии

Ответ от нейросети

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()  # Выведет: Двигатель запущен

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