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])

Залежнасьць на абстракцыях. Няма залежнасьці на пэўную рэалізацыю.

  1. ^ Робэрт Мартын. Principles Of OOD. butunclebob.com. Праверана 2016-05-03 г. (заўв. адсылка да «first five principles», то бок у артыкуле ўжываецца акронім.)
  2. ^ Робэрт Мартын. Getting a SOLID start. objectmentor.com. Праверана 2016-05-03 г.
  3. ^ Sandi Metz (Duke University) SOLID Object-Oriented Design Праверана 2016-05-03 г. Архіўная копія ад 29 сакавіка 2014 г. Выступ на канфэрэнцыі «2009 Gotham Ruby Conference» ў траўні 2009 году.
  4. ^ Single Responsibility Principle Архіўная копія ад 1 June 2015 г.
  5. ^ Open/Closed Principle Архіўная копія ад 5 September 2015 г.
  6. ^ Liskov Substitution Principle Архіўная копія ад 5 September 2015 г.
  7. ^ Interface Segregation Principle Архіўная копія ад 5 September 2015 г.
  8. ^ Dependency Inversion Principle Архіўная копія ад 5 September 2015 г.

Глядзіце таксама

рэдагаваць