Шаблони проектування програмного забезпечення
Шаблони проектування програмного забезпечення (англ. software design patterns) — ефективні способи вирішення задач проектування програмного забезпечення. Шаблон не є закінченим зразком, який можна безпосередньо транслювати в програмний код. Об'єктно-орієнтований шаблон найчастіше є зразком вирішення проблеми і відображає відношення між класами та об'єктами, без вказівки на те, як буде зрештою реалізоване це відношення.
Зміст |
Історія[ред.]
У 70-х роках двадцятого сторіччя архітектор Кристофер Александр (англ. Christopher Alexander) склав перелік шаблонів проектування. В області архітектури ця ідея не отримала такого розвитку, котрого вона досягла пізніше в області розробки програмного забезпечення.
У 1987 році Кент Бек (англ. Kent Beck) і Вард Каннігем (англ. Ward Cunningham) узяли ідеї Крістофер Александра та розробили шаблони відповідно до розробки програмного забезпечення для розробки графічних оболонок мовою Smalltalk.
У 1988 році Ерік Ґамма (англ. Erich Gamma) почав писати докторську роботу при цюрихському університеті про загальну переносимість цієї методики на розробку програм.
У 1989–1991 роках Джеймс Коплін (англ. 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)
Див. також[ред.]
Посилання[ред.]
- ↑ Larman, Craig. Applying UML and Patterns — Third Edition. [1]
Джерела[ред.]
- Design Patterns: Elements of Reusable Object-Oriented Software
- 101 Design Patterns
- Шаблони в процесі розробки
- Книга «Дизайн-патерни — просто, як двері»
Література[ред.]
Алан Шаллоуей, Джеймс Р. Тротт Шаблоны проектирования. Новый подход к объектно-ориентированному анализу и проектированию = Design Patterns Explained: A New Perspective on Object-Oriented Design. — М.: «Вильямс», 2002. — 288 с. — ISBN 0-201-71594-5
|
||||||||||||||
