Разница между основами ООП и SOLID?

Я знаю OOP (объектно-ориентированное программирование) и SOLID.

  • Основы ООП
    • Герметизация
    • Абстракция
    • Наследование
    • Полиморфизм

и

  • SOLID
    • Принцип единой ответственности
    • Открытый/Закрытый принцип
    • Принцип замены Лискова
    • Принцип сегрегации интерфейса
    • Принцип инверсии зависимостей)

Однако я не уверен, что такое точные различия, и если SOLID является подмножеством ООП. Может ли кто-нибудь помочь объяснить различия?

Ответы

Ответ 1

ответ прост:

  • Языки или понятия, которые не поддерживают инкапсуляцию, абстракцию, наследование и Poly, не являются объектно-ориентированными. Если вы делаете что-то объектно-ориентированное, вы всегда можете применить эти основы OO, потому что они доступны. Такие принципы не называются.
  • SOLID взамен не является обязательным. При разработке дизайна OO вы должны стремиться к SOLID, применяя основные основы. Solid определяет только "хороший" дизайн, а не объектно-ориентированный или нет. Это принципы.

PS: Я не понимаю ниспроверки вашего вопроса, так как он легитимный, на него можно ответить четко и запутать многих новичков OO. Продвиньтесь от меня.

Ответ 2

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