Нарушает ли композиция принцип единой обязанности из solid? Помогите пожалуйста разобраться нарушает ли наличие композиции в классе принцип единой обязанности из solid. Дело в том, что когда используется композиция, то по сути объект расширяется функциональностью другого объекта. Если он её будет использовать(а он конечно же будет, иначе зачем подключал), то получится, что он отвечает не только за себя, но и за другой объект.
Попробую пояснить изложенное при помощи примеров кода:Тут код, который явно нарушает принцип потому что инстанс AreaCalc отвечает и за расчёт суммы, и за вывод её.Тут код, который не нарушает принцип, потому что за расчёт суммы отвечает инстанс AreaCalc, а за вывод отвечает инстанс AreaOutputТут код, который тоже использует для расчёта суммы AreaCalc, а для вывода AreaOutput. НО при помощи композиции AreaOutput встроен в AreaCalc
Верно ли утверждение, что композиция нарушает принцип единой обязанности из solid?

21 Авг 2019 в 06:58
176 +1
0
Ответы
1

Нет, композиция сама по себе не обязательно нарушает принцип единой обязанности из SOLID. Важно, чтобы каждый объект отвечал за определенную функциональность, и композиция может использоваться для расширения функциональности объекта. В вашем третьем примере, если объект AreaCalc отвечает только за расчет суммы, а объект AreaOutput только за вывод, и при этом AreaOutput встроен в AreaCalc для удобства использования, то это не нарушает принцип единой обязанности. Важно, чтобы каждый объект выполнял свою задачу и не нес ответственность за все возможные функции.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 85 371 автору
Первые отклики появятся уже в течение 10 минут
Прямой эфир