Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Введение в шаблоны проектирование. Определение шаблона. Основные концепции

Лекция 10. Шаблоны проектирования в ООП

Идейным отцом применения шаблонов проектирования при разработке ПО считают профессора архитектуры Университета Калифорнии в Беркли Кристофера Александра. В конце 70-ых годов XX века он опубликовал несколько книг [18], в которых изложил основные принципы применения шаблонов в архитектуре (строительстве), а также поместил каталог архитектурных шаблонов.

В процессе развития ООП несколько людей выдвигали идею применения шаблонного подхода для формализации лучших практик при проектировании объектов. Одной из первых работ и книг на эту тему является книга Э. Гамма и других [3]. В ней были сформулированы понятие шаблона (или паттерна, pattern) проектирования, рассмотрены основные шаблоны и приведён каталог шаблонов, а так же их классификация. Мы рассмотрим только некоторые шаблоны, за дополнительной информацией рекомендуется оращаться к [3,19].

 

Под паттерном проектирования понимается описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте.

 

Идея, на которой основывается применение шаблонов проектирования, заключается в том, чтобы выработать стандартизованный подход к представлению общих решений, пригодный для часто встречающихся ситуаций при разработке ПО.

 

В общем случае паттерн состоит из четырех основных элементов:

  1. Имя. Сославшись на него, мы можем сразу описать проблему проектирования, её решения и их последствия. Присваивание паттернам имён позволяет проектировать на более высоком уровне абстракции. С помощью словаря паттернов можно вести обсуждение с коллегами, упоминать паттерны в документации, при составлении дизайна системы.
  2. Задача. Описание того, когда следует применять паттерн. Необходимо сформулировать задачу и её контекст. Может описываться конкретная проблема проектирования, например способ представления алгоритмов в виде объектов. Может включаться перечень условий, при выполнении которых имеет смысл применять данный паттерн.
  3. Решение. Описание элементов дизайна, отношений между ними, функций каждого элемента. Конкретный дизайн или реализация не имеются ввиду, поскольку паттерн – это шаблон, применимый в самых разных ситуациях. Просто даётся абстрактное описание задачи проектирования и того, как она может быть решена с помощью некоего весьма обобщённого сочетания элементов (в нашем случае классов и объектов).
  4. Результаты – это следствия применения паттерна и разного рода компромиссы. Хотя при описании проектных решений о последствиях часто не упоминают, знать о них необходимо, чтобы можно было выбрать между различными вариантами и оценить преимущества и недостатки данного паттерна. Здесь речь идёт и о выборе языка реализации.

 

Паттерн проектирования именует, абстрагирует и идентифицирует ключевые аспекты структуры общего решения, которые и позволяют применить его для создания повторно используемого дизайна. Он вычленяет участвующие классы и экземпляры, их роль и отношения, а так же функции.

Разделим шаблоны на группы по их предназначению.

 

Всего для краткости рассмотрим следующие группы шаблонов:

  • Производящие шаблоны (creational patterns);
  • Поведенческие шаблоны (behavioral patterns);
  • Структурные шаблоны (structural patterns).

 

<== предыдущая лекция | следующая лекция ==>
Архитектура Hibernate | Factory Method
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 1178; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.029 сек.