Найти тему

Solid принципы в пограммировании

Single Responsibility, каждый объект должен иметь одну ответственность и эта ответственность должна быть полностью инкапсулирована в класс.

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

Liskov принципы:

  1. Входные данные класса родителя и класса предка должны быть одинаковые (в java ограничено компилятором)
  2. Выходные данные класса родителя и предка должны быть одинаковыми (в java ограничено компилятором)
  3. Должны быть одинаковые exception в классе предке и классе родителе.
  4. Предусловие - если Родитель не может принимать отрицательные числа, то и наследники не могут принимать отрицательные числа. Логика должна быть одинакова. Если родитель принимает все, то и наследник принимает все.
  5. Постусловие - если в методе родителе закрывается соединение с бд, то оно должно закрываться и во всех наследниках.
  6. Инвариативность – набор условий, при котором объект имеет смысл. Например инвариант кота, наличие лап, хвоста, способность мурчать. При наследовании должен создаваться класс потомок схожий с родителем, например кот -> сиамский кот. Это не должна быть собака.

Interface segregation - разбиение больших интерфейсов на маленькие, в классе имплементирующем не должно быть не используемых методов интерфейса.

Dependency Inversion - зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего уровня.

Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Solid принципы в программировании
Solid принципы в программировании


Хорошее объяснение:
https://www.youtube.com/watch?v=47-F0wGz-Vk

GitLab с примерами solid:

javacore/src/solid · master · JavaBooster / education · GitLab

Выплаты, пособия от государства, экономические новости читать здесь: https://t.me/+fbTtq1Tpb_45NGUy