Solid

Проработать

  1. Пять основных принципов дизайна классов (S.O.L.I.D.) в Java
  2. Пример для иллюстрации принципов SOLID который я (кажется) понял

Что это

Solid - основные принципы объектно-ориентированного программирования и проектирования.

Описание

SOLID

  1. Принцип единственной ответственности(single responsibility) - на каждый объект должна быть возложена одна единственная обязанность. Если сканер-принтер - нужно разделить.
  2. Принцип открытости/закрытости(open–closed) - программные сущности должны быть открыты для расширения, но закрыты для модификации. При необходимости поменять логику нашей части, мы должны от нее наследоваться и менять. Тк нельзя изменять используемый код.
  3. Принцип подстановки Барбары Лисков(Liskov substitution) - объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения программы. Или наследующий класс должен дополнять, а не замещать поведение базового класса. Мы должны всегда иметь возможно заменить в любом месте программы родительский класс на дочерний, без влияния на выполнение программы. Чтобы когда мы указываем родителя как тип переменной мы должны быть уверенны что каждый наследник который будет помещен будет выполнять его методы как мы ожидаем.
  4. Принцип разделения интерфейса(interface segregation) - много специальных интерфейсов лучше, чем один общий интерфейс. Убирает необходимость реализации тех методов которые мы не будем использовать.
  5. Принцип инверсии зависимостей(dependency inversion) - зависимость на Абстракциях. Модули верхних уровней не должны зависеть от модулей нижних уровней. Всё должно зависеть от абстракции. Хороший пример: реализации мест хранения информации(БД).