Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кочетков А.О..docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
75 Кб
Скачать
☆

2. Історія

У 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). Саме ця книга послужила привідом до прориву методу шаблонів.

3. Шаблони grasp

GRASP - (англ. General Responsibility Assignment Software Patterns) - набір патернів (шаблонів, принципів), що дозволяють вирішувати проблеми розподілу обов’язків між різними класами. За своєю суттю, цей набір патернів більш абстрактний, ніж загально відомий каталог шаблонів від "банди чотирьох" (GOF-шаблони).

До складу шаблонів GRASP входить 9 шаблонів:

  • Information Expert

  • Creator

  • Low Coupling

  • High Cohesion

  • Controller

  • Polymorphism

  • Pure Fabrication

  • Indirection

  • Protected Variations

Наведені патерни чи не вперше наводяться та описуються в книзі Крега Лармана "Applying UML and Patterns – An Introduction to Object-Oriented Analysis and Design and Iterative Development" 

4. Твірні шаблони

Шаблони, що породжують (англ. Creational patterns) — це шаблони проектування, що абстрагують процес інстанціювання. Вони допоможуть зробити систему незалежною від способу створення, композиції та представлення її об'єктів.

Шаблон, який породжує класи, використовує спадкування, щоб варіювати створюваний клас, а шаблон, що створює об'єкти, делегує інстанціювання іншому об'єктові.

Ці шаблони важливі, коли система більше залежить від композиції об'єктів, ніж від спадкування класів.

Таким чином, замість прямого кодування фіксованого набору поведінок, визначається невеликий набір фундаментальних поведінок, за допомогою композиції яких можна отримувати складніші.

Таким чином, для створення об'єктів з конкретною поведінкою потрібно щось більше, ніж просте інстанціювання екземпляру класу.

Шаблони, що породжують, інкапсулюють знання про конкретні класи, які застосовуються у системі та приховують деталі того, як ці класи створюються і стикуються між собою.

Єдина інформація про об'єкти, що відома системі — їхні інтерфейси.

Перелік шаблонів, що породжують:

  • Абстрактна фабрика (Abstract Factory)

  • Будівник (Builder)

  • Одинак (Singleton)

  • Прототип (Prototype)

  • Фабричний метод (Factory Method)