Вход

solid

Solid принципы

SOLID принципы это правила для лучшей организации программного кода, для последующей его удобной доработке (масштабировании)

  • Single Responsibility Principle (Принцип единственной ответственности).
  • Open-Closed Principle (Принцип открытости-закрытости).
  • Liskov Substitution Principle (Принцип подстановки Барбары Лисков).
  • Interface Segregation Principle (Принцип разделения интерфейса).
  • Dependency Inversion Principle (Принцип инверсии зависимостей).

Single Responsibility Principle

Каждый класс (или компонент во frontend) должен выполнять строго определенную (одну функцию). Не старайтесь описать весь функционал в одном классе, так как доработка такого кода выльется в проблемы при использовании git несколькими разработчиками

Open-Closed Principle

Если потребовалось добавить новый функционал в программу, то, по возможности, следует использовать дополнительные классы, которые будут взаимодействовать с ранее созданными, а не переписываем старые. Получаем модульность проекта.

Liskov Substitution Principle

Если родительский класс имеет какой либо метод или поле, то те классы, что унаследованы от этого класса должны корректно работать с этими полями или методами, а не переопределять их.

пример: 

Есть класс животное у которого есть метод есть и есть класс кошка, который от него унаследован. Тогда класс кошка должен унаследовать реализацию этого метода, а не переопределять его

Interface Segregation Principle

Если дочерний класс (интерфейс) не использует метод родительского класса (интерфейс), а переопределяет его (например возвращает null), то тогда следует пересмотреть архитектуру, например создать другой родительский класс (интерфейс) без данного метода.

не правильно
Правильно

Метод3 не используется или переопределен во втором классе, то тогда следует разделить интерфейсы

Dependency Inversion Principle

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

пример:

при установке в машину более другого двигателя на водителе (управлении) это отразиться не должно, так как водитель управляет автомобилем, через органы управления, а не напрямую двигателем. То есть органы управления выступают абстракцией

18 января 2024 /

573 Views /

0 Comment
Ilya Web developer
Author

«Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.»Martin Golding