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