Skip to content

Latest commit

 

History

History
24 lines (24 loc) · 3.06 KB

SOLID.md

File metadata and controls

24 lines (24 loc) · 3.06 KB

==================================================================================================== SOLID

  1. Принцип единственной обязанности (Single Responsibility Principle) Для каждого класса должно быть определено единственное назначение. Все ресурсы, необходимые для его осуществления, должны быть инкапсулированы в этот класс и подчинены только этой задаче.
  • На каждый объект должна быть возложена одна единственная обязанность.
  • Разделять классы по конкретным задачам.

  1. Принцип открытости/закрытости (Open Closed Principle) Программные сущности должны быть открыты для расширения, но закрыты для изменений.
  • Программные сущности должны быть открыты для расширения, но закрыты для модификации.
  • Для изменения поведения классов, не требуется изменять исходный код.
  • Создать интерфейс, который будет реализовываться классами.

  1. Принцип подстановки Барбары Лисков (Liskov Substitution Principle) Методы, использующие некий тип, должны иметь возможность использовать его подтипы, не зная об этом.

  1. Принцип разделения интерфейсов (Interface Segregation Principle) Предпочтительнее разделять интерфейсы на более мелкие тематические, чтобы реализующие их классы не были вынуждены определять методы, которые непосредственно в них не используются.

  1. Принцип инверсии зависимостей (Dependency Inversion Principle) Система должна конструироваться на основе абстракций «сверху вниз»: не абстракции должны формироваться на основе деталей, а детали должны формироваться на основе абстракций.