Принципы S.O.L.I.D
Зачем они нужны?
• Чистый код 
• Возможность многократного 
использования кода 
• Позволяет построить 
понятную, объектно- 
ориентированную систему
S.O.L.I.D 
• S (Single responsibility / Принцип единственной 
ответственности) 
• O (Open-closed / Принцип открытости - 
закрытости) 
• L (Liskov substitution / Принцип подстановки 
Барбары Лисков) 
• I (Interface segregation / Принцип разделения 
интерфейса) 
• D (Dependency Invertion / Принцип инверсии 
зависимостей)
S (Single responsibility / Принцип 
единственной ответственности) 
«На каждый объект должна быть 
возложена одна единственная 
обязанность»
-refactoring
O (Open-closed / Принцип 
открытости - закрытости) 
«программные сущности должны быть 
открыты для расширения, но закрыты для 
модификации»
-refactoring
L (Liskov substitution / Принцип 
подстановки Барбары Лисков) 
«Объекты в программе могут быть 
заменены их наследниками без изменения 
свойств программы».
I (Interface segregation / Принцип 
разделения интерфейса) 
«Много специализированных интерфейсов 
лучше, чем один универсальный»
-refactoring
D (Dependency Invertion / Принцип 
инверсии зависимостей) 
«Зависимости внутри системы строятся 
на основе абстракций. Модули верхнего 
уровня не зависят от модулей нижнего 
уровня. Абстракции не должны зависеть от 
деталей. Детали должны зависеть от 
абстракций»
-refactoring
Спасибо за внимание! 
Email: pavel.kokhan@tut.by 
Skype: axi.by

S.O.L.I.D. - Павел Кохан, Python Meetup 26.09.2014

  • 1.
  • 3.
  • 4.
    • Чистый код • Возможность многократного использования кода • Позволяет построить понятную, объектно- ориентированную систему
  • 5.
    S.O.L.I.D • S(Single responsibility / Принцип единственной ответственности) • O (Open-closed / Принцип открытости - закрытости) • L (Liskov substitution / Принцип подстановки Барбары Лисков) • I (Interface segregation / Принцип разделения интерфейса) • D (Dependency Invertion / Принцип инверсии зависимостей)
  • 6.
    S (Single responsibility/ Принцип единственной ответственности) «На каждый объект должна быть возложена одна единственная обязанность»
  • 8.
  • 9.
    O (Open-closed /Принцип открытости - закрытости) «программные сущности должны быть открыты для расширения, но закрыты для модификации»
  • 11.
  • 12.
    L (Liskov substitution/ Принцип подстановки Барбары Лисков) «Объекты в программе могут быть заменены их наследниками без изменения свойств программы».
  • 14.
    I (Interface segregation/ Принцип разделения интерфейса) «Много специализированных интерфейсов лучше, чем один универсальный»
  • 16.
  • 17.
    D (Dependency Invertion/ Принцип инверсии зависимостей) «Зависимости внутри системы строятся на основе абстракций. Модули верхнего уровня не зависят от модулей нижнего уровня. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций»
  • 19.
  • 20.
    Спасибо за внимание! Email: pavel.kokhan@tut.by Skype: axi.by