Соответствует ли наследование единственной ответственности в SOLID? - PullRequest
1 голос
/ 10 февраля 2020

Как я узнал, основная концепция OOP, которая соответствует принципу единой ответственности, - это абстракция, но давайте представим, что у нас есть законченное программное обеспечение и необходимы некоторые новые требования, чтобы мы могли расширять существующие классы, не затрагивая их или не добавляя к ним новые обязанности. (что является наследованием). Итак, мы можем утверждать, что наследование также отображает и помогает принципу единой ответственности. Пожалуйста, помогите мне уточнить этот аргумент.

1 Ответ

1 голос
/ 10 февраля 2020

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

Наследование действительно может помочь этому принципу, но это зависит от того, как вы его используете. Существует множество способов создания классов, у которых есть только одна причина для изменения, и, как правило, это достигается с помощью множества методов объектно-ориентированного проектирования, таких как композиция, наследование, интерфейсы и т. Д. c. это не серебряная пуля для достижения этого.

Я бы порекомендовал проверить основные шаблоны проектирования OOP, чтобы лучше понять, как добавить новые обязанности к объекту. Декоратор является хорошим примером, где он использует Наследование и Композицию.

...