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

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

SOLID (скар. ад англ. Single responsibility, Open-closed, Liskov substitution, Interface segregation і Dependency inversion) у праграмаванні — мнеманічны акронім, уведзены Майклом Фэзерсом (Michael Feathers) для першых пяці прынцыпаў, названых Робертам Марцінам[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. Праверана 3 мая 2016. Выступление на конференции «2009 Gotham Ruby Conference» в мае 2009.
  4. Шаблон:Книга
  5. Single Responsibility Principle. Архівавана з першакрыніцы 1 чэрвеня 2015.
  6. Open/Closed Principle. Архівавана з першакрыніцы 5 верасня 2015.
  7. Liskov Substitution Principle. Архівавана з першакрыніцы 5 верасня 2015.
  8. Interface Segregation Principle (18 красавіка 1996). Архівавана з першакрыніцы 5 верасня 2015.
  9. Мартин, Роберт (Дядя Боб) (2000), Design Principles and Design Patterns, objectmentor.com, <http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf>. Проверено 14 января 2009.Шаблон:Cite
  10. Dependency Inversion Principle. Архівавана з першакрыніцы 5 верасня 2015.