Что такое Inversion of Control?

Что такое Inversion of Control?

Это вопрос на знание SOLID. SOLID это аббревиатура пяти основных принципов дизайна классов в объектно-ориентированном проектировании.

S-(Single responsibility principle или Принцип единственности ответственности) - На каждый объект должна быть возложена одна единственная ответственность.

O-(Open/closed principle или Принцип открытости/закрытости) - Программные сущности … должны быть открыты для расширения, но закрыты для изменения.

L-(Liskov substitution principle или Принцип подстановки Лисков) - Объекты в программе могут быть заменены их наследниками без изменения свойств программы. I-(Interface segregation principle или Принцип изоляции интерфейса) - Много специализированных интерфейсов лучше, чем один универсальный.

D-(Dependency inversion principle или Принцип инверсии зависимостей или Inversion of Control) - Зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего уровня. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.