Скачать презентацию ДЕТАЛЬНОЕ ПРОЕКТИРОВАНИЕ ТИПИЧНАЯ СХЕМА ДЕТАЛЬНОГО ПРОЕКТИРОВАНИЯ Скачать презентацию ДЕТАЛЬНОЕ ПРОЕКТИРОВАНИЕ ТИПИЧНАЯ СХЕМА ДЕТАЛЬНОГО ПРОЕКТИРОВАНИЯ

ЛЕКЦИЯ 12.ppt

  • Количество слайдов: 17

ДЕТАЛЬНОЕ ПРОЕКТИРОВАНИЕ ДЕТАЛЬНОЕ ПРОЕКТИРОВАНИЕ

ТИПИЧНАЯ СХЕМА ДЕТАЛЬНОГО ПРОЕКТИРОВАНИЯ ТИПИЧНАЯ СХЕМА ДЕТАЛЬНОГО ПРОЕКТИРОВАНИЯ

ПРОЕКТИРОВАНИЕ И USDP ПРОЕКТИРОВАНИЕ И USDP

ПРОЕКТИРОВАНИЕ И ИНТЕРФЕЙСЫ ПРОЕКТИРОВАНИЕ И ИНТЕРФЕЙСЫ

ДЕТАЛИЗАЦИЯ ДИАГРАММ ПОСЛЕДОВАТЕЛЬНОСТИ ДЕТАЛИЗАЦИЯ ДИАГРАММ ПОСЛЕДОВАТЕЛЬНОСТИ

ДЕТАЛИЗАЦИЯ КЛАССОВ НА ОСНОВЕ ДИАГРАММЫ ПОСЛЕДОВАТЕЛЬНОСТИ ДЕТАЛИЗАЦИЯ КЛАССОВ НА ОСНОВЕ ДИАГРАММЫ ПОСЛЕДОВАТЕЛЬНОСТИ

ДЕТАЛИЗАЦИЯ DFD ДЕТАЛИЗАЦИЯ DFD

СПЕЦИФИКАЦИЯ КЛАССОВ И ФУНКЦИЙ Инварианты класса есть ограничения на значения атрибутов; часто отражаются в СПЕЦИФИКАЦИЯ КЛАССОВ И ФУНКЦИЙ Инварианты класса есть ограничения на значения атрибутов; часто отражаются в требованиях. Инварианты функций – утверждения о взаимосвязях переменных, гарантировано удовлетворяемые функциями. Предусловия в функциях описывают соотношения между переменными и константами до выполнения функции. Постусловия в функциях описывают соотношения между переменными и константами после выполнения функции.

ОБРАЗЦЫ ПРОЕКТИРОВАНИЯ В ДЕТАЛЬНОМ ПРОЕКТИРОВАНИИ Аспекты - Классы и их взаимосвязь (модель классов). - ОБРАЗЦЫ ПРОЕКТИРОВАНИЯ В ДЕТАЛЬНОМ ПРОЕКТИРОВАНИИ Аспекты - Классы и их взаимосвязь (модель классов). - Способ действия образца проектирования (модель вариантов использования). Категории образцов проектирования 1. Креационные (отвечают за процесс создания объектов; Singleton, Factory, Prototype, Abstract Factory). 2. Структурные (отображают возможные комбинации объектов; Composite и Decorator, Façade, Adapter, Flyweight, Proxy). 3. Поведенческие (фиксируют выбранный режим состояния объектов; Observer, State, Iterator, Mediator).

SINGLETON Задача: обеспечить создание и существование единственного объекта класса. Решение. Задается конструктор скрытого (защищенного) SINGLETON Задача: обеспечить создание и существование единственного объекта класса. Решение. Задается конструктор скрытого (защищенного) класса, поэтому возможно создание объектов класса (например, С) только методом самого класса С. Пусть The. Object: C. Определим открытый метод класса С, get. CObject, возвращающий объект The. СObject, если он уже существует, и создающий его в противном случае. Для получения единственного элемента класса С вызывается метод С. get. The. CObject(). FACTORY Задача: обеспечить возможность работы клиентского программного кода, создающего объекты базового класса в ходе работы приложения без использования ссылок на подклассы базового класса. Решение. Комплектация базового класса методом, создающего объекты базового класса.

PROTOTYPE Задача: приложение должно работать с определенным набором подтипов объектов, определяемым непосредственно в ходе PROTOTYPE Задача: приложение должно работать с определенным набором подтипов объектов, определяемым непосредственно в ходе работы (необходимо создавать объекты определенных подтипов непосредственно, а не объекты базового типа). Решение. Использование статического объекта базового класса (прототипа). Каждый его подкласс должен иметь метод clone(), создающий независимую копию объекта базового типа. При этом клиентский код не должен знать, с каким типом объекта базового типа он имеет дело. Поэтому во всем приложении будет создаваться согласованный тип объектов базового типа.

FACTORY Задача: во время работы программы необходимо создать совокупность связанных объектов из различных возможных FACTORY Задача: во время работы программы необходимо создать совокупность связанных объектов из различных возможных совокупностей. Решение. Использование в клиентском коде метода An. Abstract. Factory. Object. get. Thing() вместо new Thing(). Объект An. Abstract. Factory. Object задан как объект подкласса Abstract. Factory, поэтому согласуются создаваемые им объекты.

СТРУКТУРНЫЕ ОБРАЗЦЫ ПРОЕКТИРОВАНИЯ. COMPOSITE И DECORATOR Задача: представить дерево объектов или связный список объектов. СТРУКТУРНЫЕ ОБРАЗЦЫ ПРОЕКТИРОВАНИЯ. COMPOSITE И DECORATOR Задача: представить дерево объектов или связный список объектов. Решение. Использовать наследование и агрегацию. Модель классов включает в себя компоненты- листья дерева (не являющиеся объединением других компонентов). Объект типа Composite выполняет метод do. It() для листового объекта или не являющегося таковым. В последнем случае do. It() вызывается для каждого своего потомка и т. д. до достижения листового элемента.

ADAPTER Задача: существует приложение (объект), предоставляющее необходимую функциональность разрабатываемому приложению. Цель – как можно ADAPTER Задача: существует приложение (объект), предоставляющее необходимую функциональность разрабатываемому приложению. Цель – как можно меньше изменить приложение для использования существующего метода вычисления, но при этом быть готовым к “утилизации” устаревающих методов вычислений. Решение. С использованием наследования и агрегации построить модель, обеспечивающую быстрое изменение функциональной составляющей.

FLYWEIGHT Задача: приложение работает с большим количеством почти неразличимых небольших объектов. Решение. Предотвращение создания FLYWEIGHT Задача: приложение работает с большим количеством почти неразличимых небольших объектов. Решение. Предотвращение создания отдельного объекта для каждой элементарной сущности благодаря использованию единственного объекта для всех сущностей и введению параметризованных методов. PROXY Задача: запуск метода очень дорогостоящий (требует много ресурсов); необходимо предотвратить выполнение наиболее дорогостоящих его частей без особой на то необходимости. Решение. Создание класса Proxy – потомка базового класса, перехватывающего ссылки на класс, содержащий дорогостоящий метод и не позволяющий создавать объекты этого класса и вызывать дорогостоящий метод при отсутствии необходимости.

ОБРАЗЦЫ ПРОЕКТИРОВАНИЯ, ОСНОВАННЫЕ НА ПОВЕДЕНИИ ПРИЛОЖЕНИЯ. ITERATOR Задача: требуется создать программный код, проходящий множество ОБРАЗЦЫ ПРОЕКТИРОВАНИЯ, ОСНОВАННЫЕ НА ПОВЕДЕНИИ ПРИЛОЖЕНИЯ. ITERATOR Задача: требуется создать программный код, проходящий множество объектов различными способами. Решение. Определение класса Iterator, содержащий ссылки на множество объектов, для обращения к которым он спроектирован.

MEDIATOR Задача: необходимо перехватить поведенческие связи между объектами, не предоставляя объектам сведений друг о MEDIATOR Задача: необходимо перехватить поведенческие связи между объектами, не предоставляя объектам сведений друг о друге. Решение. Необходимо встроить в каждый промежуточный компонент ссылку на общий промежуточный объект (не на конкретный промежуточный объект), который и будет служить для обеспечения связей между объектами.