Рубрика «Приемы объектно-ориентированного проектирования»

Паттерн Observer

Название И Классификация Паттерна Наблюдатель — паттерн поведения объектов. Назначение Определяет зависимость типа «один ко многим» между объектами таким об­разом, что при изменении состояния одного объекта все зависящие от него опове­щаются об этом и автоматически обновляются. Известен Также Под Именем Dependents (подчиненные), Publish-Subscribe (издатель-подписчик). Мотивация В результате разбиения системы на множество совместно работающих классов появляется …

Глава 4. Структурные паттерны

В структурных паттернах рассматривается вопрос о том, как из классов и объектов образуются более крупные структуры. Структурные паттерны уровня Класса Используют наследование для составления композиций из интерфейсов и реали­заций. Простой пример — использование множественного наследования для объе­динения нескольких классов в один. В результате получается класс, обладающий свойствами всех своих родителей. Особенно полезен этот паттерн, когда …

Обсуждение паттернов поведения

Инкапсуляция Вариаций Инкапсуляция вариаций — элемент многих паттернов поведения. Если опре­деленная часть программы подвержена периодическим изменениям, эти паттерны позволяют определить объект для инкапсуляции такого аспекта. Другие части про­граммы, зависящие от данного аспекта, могут кооперироваться с ним. Обычно пат­терны поведения определяют абстрактный класс, с помощью которого описывает­ся инкапсулирующий объект. Своим названием паттерн как раз и обязан …

Паттерн Template Method

Название И Классификация Паттерна Шаблонный метод — паттерн поведения классов. Назначение Шаблонный метод определяет основу алгоритма и позволяет подклассам пе­реопределить некоторые шаги алгоритма, не изменяя его структуру в целом. Мотивация Рассмотрим каркас приложения, в котором имеются классы Application и Document. Класс Application отвечает за открытие существующих докумен­тов, хранящихся во внешнем формате, например в виде файла. …

Глава 3. Порождающие паттерны

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

Глава 5. Паттерны поведения

Паттерны поведения связаны с алгоритмами и распределением обязанностей меж­ду объектами. Руечь в них идет не только о самих объектах и классах, но и о типичных способах взаимодействия. Паттерны поведения характеризуют сложный поток управления, который трудно проследить во время выполнения программы. Вни­мание акцентировано не на потоке управления как таковом, а на связях между объектами. В паттернах …

Глава 1. Введение в паттерны проектирования

Проектирование объектно-ориентированных программ — нелегкое дело, а если их нужно Использовать повторно, То все становится еще сложнее. Необходимо подо­брать подходящие объекты, отнести их к различным классам, соблюдая разумную степень детализации, определить интерфейсы классов и иерархию наследования и установить существенные отношения между классами. Дизайн должен, с одной стороны, соответствовать решаемой задаче, с другой — быть общим, …

Объяснение нотации

На протяжении всей книги мы пользуемся диаграммами для иллюстрации важ­ных идей. Некоторые диаграммы нестандартны: например, снимок экрана, где изображено диалоговое окно, или схематичное изображение дерева объектов. Но при описании паттернов проектирования для обозначения отношений и взаимо­действий между классами и объектами применяется более формальная нотация. В настоящем приложении эта нотация рассматривается подробно. Мы пользуемся тремя видами …

Паттерн Strategy

Название И Классификация Паттерна Стратегия — паттерн поведения объектов. Назначение Определяет семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми. Стратегия позволяет изменять алгоритмы независимо от клиентов, которые ими пользуются. Известен Также Под Именем Policy (политика). Мотивация Существует много алгоритмов для разбиения текста на строки. Жестко «за­шивать» все подобные алгоритмы в классы, которые в …

Глава 2. Проектирование редактора документов

В данной главе рассматривается применение паттернов на примере проектирова­ния визуального редактора документов Lexi1, построенного по принципу «что ви­дишь, то и получаешь» (WYSIWYG). Мы увидим, как с помощью паттернов можно решать проблемы проектирования, характерные для Lexi и аналогичных прило­жений. Здесь описывается опыт работы с восемью паттернами. На рис. 2.1 изображен пользовательский интерфейс редактора Lexi. WYSIWYG-представление документа …