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

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

Апісанне правіць

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

Прынцыпы правіць

Пазбавіцца «ад прыкмет дрэннага праекта» дапамагаюць наступныя пяць прынцыпаў 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(недаступная спасылка). Архівавана з першакрыніцы 29 сакавіка 2014. Праверана 3 мая 2016. Выступ на канферэнцыі «2009 Gotham Ruby Conference» ў маі 2009 года.
  4. Роберт С. Мартин, Мика Мартин. Принципы, паттерны и методики гибкой разработки на языке C#. — СПб.: Символ-плюс, 2011. — С. 8. — 768 с. — ISBN 978-5-93286-197-4.
  5. Single Responsibility Principle. Архівавана з першакрыніцы 1 June 2015.
  6. Open/Closed Principle. Архівавана з першакрыніцы 5 September 2015.
  7. Liskov Substitution Principle. Архівавана з першакрыніцы 5 September 2015.
  8. Interface Segregation Principle (27 красавіка 1996). Архівавана з першакрыніцы 5 September 2015.
  9. Роберт Марцін (Дзядзька Боб).. Design Principles and Design Patterns(недаступная спасылка). objectmentor.com (27 красавіка 2000). Архівавана з першакрыніцы 6 September 2015. Праверана 14 студзеня 2009.
  10. Dependency Inversion Principle. Архівавана з першакрыніцы 5 September 2015.