DIP-состояния:В чем разница между принципом Open/Closed и принципом инверсии зависимостей?
- модули высокого уровня не должны зависеть от модулей низкого уровня. Оба должны зависеть от абстракций.
- Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
И OCP гласит:
Программные объекты (классы, модули, функции и т.д.) должны быть открыты для расширения, но закрыты для модификации.
Я думаю, что если мы удовлетворим DIP, он также будет охватывать OCP. Итак, почему мы разделяем эти два принципа?
'OCP' от' SOLID', который по-прежнему спорный о реальной архитектуре. Вы можете найти хорошую статью от Джона Скита здесь http://msmvps.com/blogs/jon_skeet/archive/2013/03/15/the-open-closed-principle-in-review.aspx – Fendy