SOLID (аб’ектна-арыентаванае праграмаванне)

З пляцоўкі Вікіпедыя
Jump to navigation Jump to search

SOLID (скарочана ад англ. Single responsibility, Open-closed, Liskov substitution, Interface segregation і Dependency inversion) у праграмаванні — мнеманічны акронім, уведзены Майклам Фэзерсам для першых пяці прынцыпаў, названых Робертам Марцінам[1][2] у пачатку 2000-х, якія азначалі пяць асноўных прынцыпаў аб’ектна-арыентаванага праграмавання і праектавання[3].

Апісанне[правіць | правіць зыходнік]

Выкарыстанне ў сукупнасці даных прынцыпаў дазваляе павысіць верагоднасць таго, што праграміст створыць сістэму, якую будзе лёгка падтрымліваць і пашыраць на працягу доўгага часу. Прынцыпы SOLID — гэта дапаможнікі, якія могуць прымяняцца у час работы над праграмным забеспячэннем для выдалення «кода з пахам», прадпісваючы праграмісту выконваць рэфактарынг зыходнага кода, пакуль той не стане разборліва напісаным і пашыраемым. Гэта частка агульнай стратэгіі гнуткай і адаптыўнай распрацоўкі(англ.) бел..

Прынцыпы[правіць | правіць зыходнік]

Пазбавіцца «ад прыкмет дрэннага праекта» дапамагаюць наступныя пяць прынцыпаў SOLID:

Ініцыял Паказвае Назва, паняцце[4]
S SRP[5]
Прынцып адзінай адказнасці (The Single Responsibility Principle)
Існуе толькі адна прычына, якая прыводзіць да змянення класа.
O OCP[6]
Прынцып адкрытасці/закрытасці (The Open Closed Principle)
«праграмныя сутнасці … павінны быць адчынены для пашырэння, але зачынены для мадыфікацыі.»
L LSP[7]
Прынцып падстаноўкі Барбары Ліскоў (The Liskov Substitution Principle)
«аб'екты ў праграме павінны быць заменяемымі на экзэмпляры іх падтыпаў без змянення правільнасці выканання праграмы.» Гл. таксама кантрактнае праграмаванне.

Спадчыняльны клас павінен дапаўняць, а не змяняць базавы.

I ISP[8]
Прынцып раздзялення інтэрфейса (The Interface Segregation Principle)
«зашмат інтэрфейсаў, спецыяльна прызначаных для кліентаў, лепш, чым адзін інтэрфейс агульнага назначэння.»[9]
D DIP[10]
Прынцып інверсіі залежнасцей (The Dependency Inversion Principle)
«Залежнасць на абстракцыях. Няма залежнасці на нешта канкрэтнае.»

Гл. таксама[правіць | правіць зыходнік]

Зноскі

  1. Роберт Марцін (Дядя Боб) Principles Of OOD. butunclebob.com. Праверана 3 мая 2016. (прим. отсылка на «first five principles», то есть в статье не используется акроним.)
  2. Роберт Марцін (Дядя Боб) Getting a SOLID start. objectmentor.com. Праверана 3 мая 2016.
  3. Sandi Metz (Duke University) SOLID Object-Oriented Design. Праверана 3 мая 2016. Выступление на конференции «2009 Gotham Ruby Conference» в мае 2009.
  4. Роберт С. Мартин, Мика Мартин. Принципы, паттерны и методики гибкой разработки на языке C#. — СПб.: Символ-плюс, 2011. — С. 8. — 768 с. — ISBN 978-5-93286-197-4.
  5. Single Responsibility Principle. Архівавана з першакрыніцы 1 чэрвеня 2015.
  6. Open/Closed Principle. Архівавана з першакрыніцы 5 верасня 2015.
  7. Liskov Substitution Principle. Архівавана з першакрыніцы 5 верасня 2015.
  8. Interface Segregation Principle (14 лістапада 1996). Архівавана з першакрыніцы 5 верасня 2015.
  9. Роберт Марцін (Дядя Боб). Design Principles and Design Patterns. objectmentor.com (14 лістапада 2000). Архівавана з першакрыніцы 6 верасня 2015. Праверана 14 студзеня 2009.
  10. Dependency Inversion Principle. Архівавана з першакрыніцы 5 верасня 2015.