SOLID (аб’ектна-арыентаванае праграмаваньне)
SOLID (скарот ад ангельскага Single responsibility, Open-closed, Liskov substitution, Interface segregation і Dependency inversion) у праграмаваньні — мнеманічны акронім, уведзены Майклам Фізэрсам для першых пяці прынцыпаў абʼектна-арыентаванага праграмаваньня й праектаваньня, названых Робэртам Мартынам у пачатку 2000-х[1][2][3].
Апісаньне
рэдагавацьВыкарыстаньне прынцыпаў SOLID павялічвае верагоднасьць таго, што праграмоўца пабудуе сыстэму, якую будзе лёгка падтрымліваць і пашыраць на працягу доўгага часу.
Гэтыя прынцыпы ёсьць настаўленьнямі, прытрымліваючыся якіх, праграмоўца, падчас працы над апраграмаваньнем, выдаляе «сьмярдзючы код(en)» і выконвае рэфактарынг крынічнага коду, пакуль той ня стане разборліва напісаным і пашыраемым.
Таксама, гэтыя прынцыпы ёсьць часткай агульнай стратэгіі гнуткай(en) і адаптыўнай распрацоўкі(en).
Прынцыпы
рэдагавацьПазбавіцца «ад прыкмет дрэннага праекта» дапамагаюць наступныя пяць прынцыпаў SOLID:
S — Прынцып адзінай адказнасьці
рэдагаваць(анг. The Single Responsibility Principle[4])
Павінна існаваць толькі адзіная падстава да рэдагаваньня клясы.
То бок кожная кляса павінна мець адзіную адказнасьць.
O — Прынцып адкрытасьці/закрытасьці
рэдагаваць(анг. The Open Closed Principle[5])
Праграмныя сутнасьці павінны быць адкрытыя для пашырэньня, але закрытыя для мадыфікацыі.
L — Прынцып падстаноўкі Барбары Ліскоў
рэдагаваць(анг. The Liskov Substitution Principle[6])
Абʼекты ў праграме павінна быць можна замяніць на асобнікі іх падтыпаў безь зьмяненьня слушнасьці выкананьня праграмы.
I — Прынцып разьдзяленьня інтэрфейсу
рэдагаваць(анг. The Interface Segregation Principle[7])
Многа спэцыялізаваных інтэрфейсаў лепей за адзін інтэрфейс агульнага прызначэньня.
D — Прынцып інвэрсіі залежнасьцяў
рэдагаваць(анг. The Dependency Inversion Principle[8])
Залежнасьць на абстракцыях. Няма залежнасьці на пэўную рэалізацыю.
Крыніцы
рэдагаваць- ^ Робэрт Мартын. Principles Of OOD. butunclebob.com. Праверана 2016-05-03 г. (заўв. адсылка да «first five principles», то бок у артыкуле ўжываецца акронім.)
- ^ Робэрт Мартын. Getting a SOLID start. objectmentor.com. Праверана 2016-05-03 г.
- ^ Sandi Metz (Duke University) SOLID Object-Oriented Design Праверана 2016-05-03 г. Архіўная копія ад 29 сакавіка 2014 г. Выступ на канфэрэнцыі «2009 Gotham Ruby Conference» ў траўні 2009 году.
- ^ Single Responsibility Principle Архіўная копія ад 1 June 2015 г.
- ^ Open/Closed Principle Архіўная копія ад 5 September 2015 г.
- ^ Liskov Substitution Principle Архіўная копія ад 5 September 2015 г.
- ^ Interface Segregation Principle Архіўная копія ад 5 September 2015 г.
- ^ Dependency Inversion Principle Архіўная копія ад 5 September 2015 г.