Шаблони проєктування програмного забезпечення

ефектні способи вирішення задач проєктування програмного забезпечення

Шаблони проєктування програмного забезпечення (англ. software design patterns) — ефектні способи вирішення задач проєктування програмного забезпечення. Шаблон не є закінченим зразком, який можна безпосередньо транслювати в програмний код. Об'єктно-орієнтований шаблон найчастіше є зразком вирішення проблеми і відображає відношення між класами та об'єктами, без вказівки на те, як буде зрештою реалізоване це відношення.

Історія ред.

У 70-х роках двадцятого сторіччя архітектор Крістофер Александр (англ. Christopher Alexander) склав перелік шаблонів проєктування. В області архітектури ця ідея не отримала такого розвитку, котрого вона досягла пізніше в області розробки програмного забезпечення.

У 1987 році Кент Бек (англ. Kent Beck) і Вард Каннігем (англ. Ward Cunningham) узяли ідеї Крістофера Александра та розробили шаблони відповідно до розробки програмного забезпечення для розробки графічних оболонок мовою Smalltalk.

У 1988 році Еріх Ґамма (англ. Erich Gamma) почав писати докторську роботу при цюрихському університеті про загальну переносимість цієї методики на розробку програм.

У 19891991 роках Джеймс Коплін (англ. James Coplien) трудився над розробкою ідіом для програмування мовою C++ та опублікував у 1991 році книгу «Advanced C++ Idioms».

У цьому ж році Ерік Ґамма закінчує свою докторську роботу та переїздить до США, де у співробітництві з Річардом Гелмом (англ. Richard Helm), Ральфом Джонсоном (англ. Ralph Johnson) та Джоном Вліссідсом (англ. John Vlissides) публікує книгу «Design Patterns — Elements of Reusable Object-Oriented Software». У цій книзі описані 23 шаблона проєктування. Також команда авторів цієї книги відома суспільству під назвою Банда чотирьох (англ. Gang of Four - GoF). Саме ця книга послужила приводом до прориву методу шаблонів.

Типи шаблонів GOF ред.

Шаблони GRASP ред.

Також існує інша група шаблонів проєктування, що отримала назву GRASP — General Responsibility Assignment Software Patterns. Опис цих шаблонів наводить Крег Ларман у своїй книзі[1]. Шаблони GRASP формулюють найбільш базові принципи розподілу обов'язків між типами. До складу шаблонів GRASP входить 9 шаблонів:

  • Інформаційний експерт (Information Expert)
  • Творець примірників класу (Creator)
  • Низька зв'язаність (Low Coupling)
  • Високе зчеплення (High Cohesion)
  • Контролер (Controller)
  • Поліморфізм (Polymorphism)
  • Штучний (Pure Fabrication)
  • Перенаправлення (Indirection)
  • Стійкий до змін (Protected Variations)

Див. також ред.

Посилання ред.

  1. Larman, Craig[en]. Applying UML and Patterns — Third Edition. [1] [Архівовано 30 червня 2003 у Wayback Machine.]

Джерела ред.

Література ред.

Алан Шаллоуей, Джеймс Р. Тротт. Шаблоны проектирования. Новый подход к объектно-ориентированному анализу и проектированию = Design Patterns Explained: A New Perspective on Object-Oriented Design. — М. : «Вильямс», 2002. — 288 с. — ISBN 0-201-71594-5.