Образцы проектов (design patterns)

Образцы проектов (design patterns)

В середине девяностых годов специалистов привлекла идея образцов (или шаблонов) проектов. Образец - это архитектурный принцип, применимый во многих прикладных областях; следуя образцу можно построить решение некоторой проблемы.(Образец проекта с историей команд рассмотрен в 4.1), в которой впервые было предложено это понятие, и последовавшие за ней издания содержали каталог непосредственно применимых образцов, которые читатели могли изучать и использовать.

Образцы проектов уже внесли существенный вклад в развитие ОО-технологии, и по мере публикации все новых образцов они помогут разработчикам пользоваться опытом своих предшественников и современников. Как же этот общий принцип приложить к проблеме повторного использования? Образцы проектов не должны внушать надежду на возвращение к уже упоминавшейся ранее мысли о том, что "все что нужно - это только повторно использовать проекты". Образец, который по-существу представляет собой лишь сценарий образца (book pattern), пусть даже самый лучший и универсальный, является только "учебным пособием", а не инструментальным средством повторного использования. Как-никак, а в течении трех последних десятилетий учебники по компьютерным наукам рассказывают об оптимизации реляционных баз данных, AVL-деревьях (сбалансированных деревьях Адельсона-Вельского и Ландиса), алгоритме быстрой сортировки (Quicksort) Хоара, алгоритме Дейкстры для поиска кратчайшего пути в графе, без какого-либо упоминания о том, что эти мет оды совершили прорыв в решении проблемы повторного использования. В определенном смысле, образцы, разработанные за последние несколько лет, являются лишь очередными дополнениями к набору стандартных приемов, используемых специалистами по разработке ПО. При таком понимании новым вкладом в ОО-технологию следует считать не идею образца, а сами предлагаемые образцы.

Обстоятельное рассмотрение проблемы образцов показывает, что эта точка зрения оказывается излишне ограниченной (См. "Программы с дырами", лекция 14). По-видимому, само понятие образца является действительно новым вкладом, даже если это еще не вполне осознанно. Но требуется дополнительная работа над образцами, чтобы выйти за пределы их чисто педагогической ценности. Удачный образец не может быть представлен лишь некоторым текстовым описанием - это должен быть компонент ПО или набор таких компонентов. На первый взгляд такая цель может представляться довольно отдаленной, поскольку многие из образцов являются настолько универсальными и абстрактными, что кажется невозможным реализовать их в виде программных модулей.

Но использование ОО-технологии обеспечивает радикальный вклад - она позволяет создавать повторно используемые модули, обладающие способностью изменяться. Они не будут "замороженными" элементами, а служат общими схемами, образцами, - здесь действительно уместен термин образец в полном смысле этого слова, они могут быть адаптированы к различным конкретным ситуациям. Это новое понятие мы называем классом, определяющим поведение (behavior class) (более образным является термин программы с дырами (programs with holes)). Это понятие, основанное на понятии отложенного (абстрактного) класса (deferred class), будет рассмотрено в последующих лекциях. Объединяя его с идей о группе компонентов, предназначенных для совместного функционирования - часто называемых каркасами (frameworks) или просто библиотеками - получаем замечательное средство, сочетающее повторное использование и способность к адаптации.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Образцы шага, часть 1: оси образца

Из книги автора

Образцы шага, часть 1: оси образца Оси — первая часть образцов шага. Например, в образце шага child::NAME, ссылающемся на элемент <NAME>, дочерний по отношению к контекстному узлу, child называется осью. У образцов две оси:• ось attribute содержит атрибуты контекстного узла;• ось child


Образцы шага, часть 2: условия узла

Из книги автора

Образцы шага, часть 2: условия узла Условия узла (node test) составляют вторую часть образцов шага. В качестве условий узла можно использовать названия узлов или символ подстановки * для выбора и узлов, и их типов. Например, выражение child::*/child::NAME выбирает все элементы <NAME>,


Использование специальных инструментов в design-time: FIBPIus Tools

Из книги автора

Использование специальных инструментов в design-time: FIBPIus Tools Кроме компонентов библиотека FIBPIus также включает ряд дополнительных инструментов - FIBPIus Tools, которые расширяют возможности среды разработки специально для более удобного и эффективного использования


Professional Landscape Design Software

Из книги автора

Professional Landscape Design Software Программа Professional Landscape Design Software представляет собой новейший инструмент, который поможет в создании проекта участка, дома, его визуализации. Официальный распространитель приложения – Idea Spectrum. На своем сайте (http://www.ideaspectrum.com/index.php) компания


3D Home Architect Design Suite Deluxe

Из книги автора

3D Home Architect Design Suite Deluxe 3D Home Architect Design Suite Deluxe (сайт разработчика – http://www.3dhaonline.com/) – еще одна программа, которая может помочь при ландшафтном проектировании. Она создана компанией DiComp. В дальнейшем мы будем обращаться к 3D Home Architect Design Suite Deluxe для решения различных задач и


Создание малых архитектурных форм в программе 3D Home Architect Design Suite Deluxe

Из книги автора

Создание малых архитектурных форм в программе 3D Home Architect Design Suite Deluxe В 3D Home Architect Design Suite Deluxe можно создавать красивые ландшафтные дизайны. Программа имеет большой набор стандартных объектов в библиотеке, которые можно редактировать.Рассмотрим данную программу и создадим


Проект участка с деревьями и кустарниками в программе 3D Home Architect Design Suite Deluxe

Из книги автора

Проект участка с деревьями и кустарниками в программе 3D Home Architect Design Suite Deluxe Рассмотрим пример создания проекта с деревьями и кустарниками в программе 3D Home Architect Design Suite Deluxe. Добавим растительность – деревья и кустарники в проект, созданный в программе.Откройте программу 3D


Vibrant Patterns (Дрожащие рисунки)

Из книги автора

Vibrant Patterns (Дрожащие рисунки) Следующий фильтр пакета Creative Pack – Vibrant Patterns (Дрожащие рисунки). Изображения, получаемые с его помощью, представляют собой калейдоскопические коллажи, созданные при помощи генератора колебаний (рис. 7.5). Рис. 7.5. Примеры узоров, созданных при


1.6.15. Правило оптимизации: создайте опытные образцы, заставьте их работать, прежде чем перейти к оптимизации

Из книги автора

1.6.15. Правило оптимизации: создайте опытные образцы, заставьте их работать, прежде чем перейти к оптимизации Самый основной аргумент в пользу создания прототипов впервые был выдвинут Керниганом и Плоджером (Plauger): "90% актуальной и реальной функциональности лучше, чем 100%


1.6.15. Правило оптимизации: создайте опытные образцы, заставьте их работать, прежде чем перейти к оптимизации

Из книги автора

1.6.15. Правило оптимизации: создайте опытные образцы, заставьте их работать, прежде чем перейти к оптимизации Самый основной аргумент в пользу создания прототипов впервые был выдвинут Керниганом и Плоджером (Plauger): "90% актуальной и реальной функциональности лучше, чем 100%


Бесплатные образцы

Из книги автора

Бесплатные образцы Раздавайте что-нибудь бесплатноМир полон шума и суеты. Чтобы вас заметили среди всего этого, раздавайте что-нибудь бесплатно.Умные компании знают, что раздача подарков — замечательный способ завоевать благосклонность клиентов. Посмотрите на


Глава 6 Дизайн с помощью программы Professional Home Design – Platinum

Из книги автора

Глава 6 Дизайн с помощью программы Professional Home Design – Platinum Начнем изучение программных продуктов для дизайна с приложения Professional Home Design – Platinum. Эта программа (рис. 6.1) разработана компанией Punch Software (в гл. 2 уже был рассмотрен продукт этой компании – Super Home Suite). Рис. 6.1. Главное


Промзона: Итоги Electrolux Design Lab 2010 Николай Маслухин

Из книги автора

Промзона: Итоги Electrolux Design Lab 2010 Николай Маслухин Опубликовано 04 октября 2010 года Сентябрь 2010 года стал месяцем подведения итогов конкурса Electrolux Design Lab 2010. «Компьютерра» неоднократно писала о концептах, представленных на этом конкурсе — участники


Глава 8 Образцы, экземпляры и библиотеки

Из книги автора

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


Финалисты дизайнерского конкурса Electrolux Design Lab 2013 Николай Маслухин

Из книги автора

Финалисты дизайнерского конкурса Electrolux Design Lab 2013 Николай Маслухин Опубликовано 30 сентября 2013 Ежегодно компания Electrolux устраивает конкурс, на котором молодые дизайнеры выражают свое видение развития технологий и предлагают концепты бытовой


Обзор наиболее интересных финалистов конкурса If Concept Design Award 2013 Николай Маслухин

Из книги автора

Обзор наиболее интересных финалистов конкурса If Concept Design Award 2013 Николай Маслухин Опубликовано 19 апреля 2013 If Concept Design Award 2013 – популярный конкурс для студентов-архитекторов, дизайнеров и маркетологов. Ежегодно, в рамках этого состязания, более