🗊 Презентация Паттерны проектирования

Категория: Образование
Нажмите для полного просмотра!
Паттерны проектирования, слайд №1 Паттерны проектирования, слайд №2 Паттерны проектирования, слайд №3 Паттерны проектирования, слайд №4 Паттерны проектирования, слайд №5 Паттерны проектирования, слайд №6 Паттерны проектирования, слайд №7 Паттерны проектирования, слайд №8 Паттерны проектирования, слайд №9 Паттерны проектирования, слайд №10 Паттерны проектирования, слайд №11 Паттерны проектирования, слайд №12 Паттерны проектирования, слайд №13 Паттерны проектирования, слайд №14 Паттерны проектирования, слайд №15 Паттерны проектирования, слайд №16 Паттерны проектирования, слайд №17 Паттерны проектирования, слайд №18 Паттерны проектирования, слайд №19 Паттерны проектирования, слайд №20 Паттерны проектирования, слайд №21 Паттерны проектирования, слайд №22 Паттерны проектирования, слайд №23 Паттерны проектирования, слайд №24 Паттерны проектирования, слайд №25 Паттерны проектирования, слайд №26 Паттерны проектирования, слайд №27 Паттерны проектирования, слайд №28 Паттерны проектирования, слайд №29 Паттерны проектирования, слайд №30 Паттерны проектирования, слайд №31 Паттерны проектирования, слайд №32 Паттерны проектирования, слайд №33 Паттерны проектирования, слайд №34 Паттерны проектирования, слайд №35 Паттерны проектирования, слайд №36 Паттерны проектирования, слайд №37 Паттерны проектирования, слайд №38 Паттерны проектирования, слайд №39 Паттерны проектирования, слайд №40 Паттерны проектирования, слайд №41 Паттерны проектирования, слайд №42 Паттерны проектирования, слайд №43 Паттерны проектирования, слайд №44 Паттерны проектирования, слайд №45 Паттерны проектирования, слайд №46 Паттерны проектирования, слайд №47 Паттерны проектирования, слайд №48 Паттерны проектирования, слайд №49 Паттерны проектирования, слайд №50 Паттерны проектирования, слайд №51 Паттерны проектирования, слайд №52 Паттерны проектирования, слайд №53 Паттерны проектирования, слайд №54 Паттерны проектирования, слайд №55 Паттерны проектирования, слайд №56 Паттерны проектирования, слайд №57 Паттерны проектирования, слайд №58 Паттерны проектирования, слайд №59 Паттерны проектирования, слайд №60 Паттерны проектирования, слайд №61 Паттерны проектирования, слайд №62 Паттерны проектирования, слайд №63 Паттерны проектирования, слайд №64 Паттерны проектирования, слайд №65 Паттерны проектирования, слайд №66 Паттерны проектирования, слайд №67 Паттерны проектирования, слайд №68 Паттерны проектирования, слайд №69 Паттерны проектирования, слайд №70 Паттерны проектирования, слайд №71 Паттерны проектирования, слайд №72 Паттерны проектирования, слайд №73 Паттерны проектирования, слайд №74 Паттерны проектирования, слайд №75 Паттерны проектирования, слайд №76 Паттерны проектирования, слайд №77 Паттерны проектирования, слайд №78 Паттерны проектирования, слайд №79 Паттерны проектирования, слайд №80 Паттерны проектирования, слайд №81 Паттерны проектирования, слайд №82 Паттерны проектирования, слайд №83 Паттерны проектирования, слайд №84 Паттерны проектирования, слайд №85 Паттерны проектирования, слайд №86 Паттерны проектирования, слайд №87 Паттерны проектирования, слайд №88 Паттерны проектирования, слайд №89 Паттерны проектирования, слайд №90 Паттерны проектирования, слайд №91 Паттерны проектирования, слайд №92 Паттерны проектирования, слайд №93 Паттерны проектирования, слайд №94 Паттерны проектирования, слайд №95 Паттерны проектирования, слайд №96 Паттерны проектирования, слайд №97 Паттерны проектирования, слайд №98 Паттерны проектирования, слайд №99 Паттерны проектирования, слайд №100 Паттерны проектирования, слайд №101 Паттерны проектирования, слайд №102 Паттерны проектирования, слайд №103 Паттерны проектирования, слайд №104 Паттерны проектирования, слайд №105 Паттерны проектирования, слайд №106 Паттерны проектирования, слайд №107 Паттерны проектирования, слайд №108 Паттерны проектирования, слайд №109 Паттерны проектирования, слайд №110 Паттерны проектирования, слайд №111 Паттерны проектирования, слайд №112 Паттерны проектирования, слайд №113 Паттерны проектирования, слайд №114 Паттерны проектирования, слайд №115 Паттерны проектирования, слайд №116 Паттерны проектирования, слайд №117 Паттерны проектирования, слайд №118 Паттерны проектирования, слайд №119 Паттерны проектирования, слайд №120 Паттерны проектирования, слайд №121 Паттерны проектирования, слайд №122 Паттерны проектирования, слайд №123 Паттерны проектирования, слайд №124 Паттерны проектирования, слайд №125 Паттерны проектирования, слайд №126 Паттерны проектирования, слайд №127 Паттерны проектирования, слайд №128 Паттерны проектирования, слайд №129 Паттерны проектирования, слайд №130 Паттерны проектирования, слайд №131 Паттерны проектирования, слайд №132 Паттерны проектирования, слайд №133 Паттерны проектирования, слайд №134 Паттерны проектирования, слайд №135 Паттерны проектирования, слайд №136 Паттерны проектирования, слайд №137 Паттерны проектирования, слайд №138 Паттерны проектирования, слайд №139

Содержание

Вы можете ознакомиться и скачать презентацию на тему Паттерны проектирования. Доклад-сообщение содержит 139 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1


Паттерны проектирования, слайд №1
Описание слайда:

Слайд 2


Описание взаимодействия объектов и классов адаптированных для решения задачи проектирования в конкретном контексте. Описание взаимодействия объектов...
Описание слайда:
Описание взаимодействия объектов и классов адаптированных для решения задачи проектирования в конкретном контексте. Описание взаимодействия объектов и классов адаптированных для решения задачи проектирования в конкретном контексте. Удачные проектные решения, которые можно использовать снова и снова.

Слайд 3


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

Слайд 4


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

Слайд 5


Создание словаря предметной области и вспомогательных сущностей; Создание словаря предметной области и вспомогательных сущностей; Декомпозиция на...
Описание слайда:
Создание словаря предметной области и вспомогательных сущностей; Создание словаря предметной области и вспомогательных сущностей; Декомпозиция на объекты; Декомпозиция на классы; Создание модели предметной области; Анализ и следующая итерация.

Слайд 6


Паттерны проектирования классов/обьектов (Классификация GoF) Паттерны проектирования классов/обьектов (Классификация GoF) Архитектурные системные...
Описание слайда:
Паттерны проектирования классов/обьектов (Классификация GoF) Паттерны проектирования классов/обьектов (Классификация GoF) Архитектурные системные паттерны Паттерны интеграции корпоративных информационных систем

Слайд 7


Design Patterns: Elements of Design Patterns: Elements of Reusable Object-Oriented Software — книга 1994 года об инженерии программного обеспечения,...
Описание слайда:
Design Patterns: Elements of Design Patterns: Elements of Reusable Object-Oriented Software — книга 1994 года об инженерии программного обеспечения, описывающая решения некоторых частых проблем в проектировании ПО. Авторы книги: Эрих Гамма (Erich Gamma), Ричард Хелм (Richard Helm), Ральф Джонсон (Ralph Johnson), Джон Влиссидс (John Vlissides). Коллектив авторов также известен как «Банда четырёх»

Слайд 8


Паттерны проектирования, слайд №8
Описание слайда:

Слайд 9


Паттерны проектирования, слайд №9
Описание слайда:

Слайд 10


Паттерны проектирования, слайд №10
Описание слайда:

Слайд 11


Необходимо обеспечить взаимодействие несовместимых интерфейсов или как создать единый устойчивый интерфейс для нескольких компонентов с разными...
Описание слайда:
Необходимо обеспечить взаимодействие несовместимых интерфейсов или как создать единый устойчивый интерфейс для нескольких компонентов с разными интерфейсами. Необходимо обеспечить взаимодействие несовместимых интерфейсов или как создать единый устойчивый интерфейс для нескольких компонентов с разными интерфейсами.

Слайд 12


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

Слайд 13


Паттерны проектирования, слайд №13
Описание слайда:

Слайд 14


Паттерны проектирования, слайд №14
Описание слайда:

Слайд 15


Необходимо использовать существующий класс, но его интерфейс не соответствует заданным требованиям Необходимо использовать существующий класс, но его...
Описание слайда:
Необходимо использовать существующий класс, но его интерфейс не соответствует заданным требованиям Необходимо использовать существующий класс, но его интерфейс не соответствует заданным требованиям Создание повторно используемого класса, который должен взаимодействовать с заранее неизвестными или не связанными с ним классами, имеющими несовместимые интерфейсы Использование нескольких существующих подклассов, приспосабливая интерфейс их общего родительского класса (только для адаптера объектов)

Слайд 16


Паттерны проектирования, слайд №16
Описание слайда:

Слайд 17


Возложить дополнительные обязанности (прозрачные для клиентов) на отдельный объект, а не на класс в целом. Возложить дополнительные обязанности...
Описание слайда:
Возложить дополнительные обязанности (прозрачные для клиентов) на отдельный объект, а не на класс в целом. Возложить дополнительные обязанности (прозрачные для клиентов) на отдельный объект, а не на класс в целом.

Слайд 18


Применение нескольких «Оболочек" к одному "Компоненту" позволяет произвольным образом сочетать обязанности, например, одно свойство...
Описание слайда:
Применение нескольких «Оболочек" к одному "Компоненту" позволяет произвольным образом сочетать обязанности, например, одно свойство можно добавить дважды. Применение нескольких «Оболочек" к одному "Компоненту" позволяет произвольным образом сочетать обязанности, например, одно свойство можно добавить дважды.

Слайд 19


Динамически добавить объекту новые обязанности не прибегая при этом к порождению подклассов (наследованию). «Компонент» определяет интерфейс для...
Описание слайда:
Динамически добавить объекту новые обязанности не прибегая при этом к порождению подклассов (наследованию). «Компонент» определяет интерфейс для объектов, на которые могут быть динамически возложены дополнительные обязанности, «Конкретный Компонент» определяет объект, на который возлагаются дополнительные обязанности, «Оболочка» - хранит ссылку на объект "Компонент" и определяет интерфейс, соответствующий интерфейсу "Компонента". "Конкретная Оболочка" возлагает дополнительные обязанности на компонент. «Оболочка" переадресует запросы объекту "Компонент". Динамически добавить объекту новые обязанности не прибегая при этом к порождению подклассов (наследованию). «Компонент» определяет интерфейс для объектов, на которые могут быть динамически возложены дополнительные обязанности, «Конкретный Компонент» определяет объект, на который возлагаются дополнительные обязанности, «Оболочка» - хранит ссылку на объект "Компонент" и определяет интерфейс, соответствующий интерфейсу "Компонента". "Конкретная Оболочка" возлагает дополнительные обязанности на компонент. «Оболочка" переадресует запросы объекту "Компонент".

Слайд 20


Паттерны проектирования, слайд №20
Описание слайда:

Слайд 21


Большая гибкость, чем у статического наследования: можно добавлять и удалять обязанности во время выполнения программы в то время как при...
Описание слайда:
Большая гибкость, чем у статического наследования: можно добавлять и удалять обязанности во время выполнения программы в то время как при использовании наследования надо было бы создавать новый класс для каждой дополнительной обязанности. Данный паттерн позволяет избежать перегруженных методами классов на верхних уровнях иерархии - новые обязанности можно добавлять по мере необходимости. Большая гибкость, чем у статического наследования: можно добавлять и удалять обязанности во время выполнения программы в то время как при использовании наследования надо было бы создавать новый класс для каждой дополнительной обязанности. Данный паттерн позволяет избежать перегруженных методами классов на верхних уровнях иерархии - новые обязанности можно добавлять по мере необходимости.

Слайд 22


«Оболочка» и его "Компонент" не идентичны, и, кроме того, получается что система состоит из большого числа мелких объектов, которые похожи...
Описание слайда:
«Оболочка» и его "Компонент" не идентичны, и, кроме того, получается что система состоит из большого числа мелких объектов, которые похожи друг на друга и различаются только способом взаимосвязи, а не классом и не значениями своих внутренних переменных - такая система сложна в изучении и отладке. «Оболочка» и его "Компонент" не идентичны, и, кроме того, получается что система состоит из большого числа мелких объектов, которые похожи друг на друга и различаются только способом взаимосвязи, а не классом и не значениями своих внутренних переменных - такая система сложна в изучении и отладке.

Слайд 23


Паттерны проектирования, слайд №23
Описание слайда:

Слайд 24


Необходимо управлять доступом к объекту, так чтобы создавать громоздкие объекты "по требованию". Необходимо управлять доступом к объекту,...
Описание слайда:
Необходимо управлять доступом к объекту, так чтобы создавать громоздкие объекты "по требованию". Необходимо управлять доступом к объекту, так чтобы создавать громоздкие объекты "по требованию".

Слайд 25


Создать суррогат громоздкого объекта. "Заместитель" хранит ссылку, которая позволяет заместителю обратиться к реальному субъекту (объект...
Описание слайда:
Создать суррогат громоздкого объекта. "Заместитель" хранит ссылку, которая позволяет заместителю обратиться к реальному субъекту (объект класса "Заместитель" может обращаться к объекту класса "Субъект", если интерфейсы "РеальногоСубъекта" и "Субъекта" одинаковы). Поскольку интерфейс "РеальногоСубъекта" идентичен интерфейсу "Субъекта", так, что "Заместителя" можно подставить вместо "РеальногоСубъекта", контролирует доступ к "РеальномуСубъекту", может отвечать за создание или удаление "РеальногоСубъекта". "Субъект" определяет общий для "РеальногоСубъекта" и "Заместителя" интерфейс, так, что "Заместитель" может быть использован везде, где ожидается "РеальныйСубъект". При необходимости запросы могут быть переадресованы "Заместителем" "РеальномуСубъекту". Создать суррогат громоздкого объекта. "Заместитель" хранит ссылку, которая позволяет заместителю обратиться к реальному субъекту (объект класса "Заместитель" может обращаться к объекту класса "Субъект", если интерфейсы "РеальногоСубъекта" и "Субъекта" одинаковы). Поскольку интерфейс "РеальногоСубъекта" идентичен интерфейсу "Субъекта", так, что "Заместителя" можно подставить вместо "РеальногоСубъекта", контролирует доступ к "РеальномуСубъекту", может отвечать за создание или удаление "РеальногоСубъекта". "Субъект" определяет общий для "РеальногоСубъекта" и "Заместителя" интерфейс, так, что "Заместитель" может быть использован везде, где ожидается "РеальныйСубъект". При необходимости запросы могут быть переадресованы "Заместителем" "РеальномуСубъекту".

Слайд 26


Паттерны проектирования, слайд №26
Описание слайда:

Слайд 27


Удаленный заместитель : обеспечивает связь с «Субъектом», который находится в другом адресном пространстве или на удалённой машине. Так же может...
Описание слайда:
Удаленный заместитель : обеспечивает связь с «Субъектом», который находится в другом адресном пространстве или на удалённой машине. Так же может отвечать за кодирование запроса и его аргументов и отправку закодированного запроса реальному «Субъекту». Удаленный заместитель : обеспечивает связь с «Субъектом», который находится в другом адресном пространстве или на удалённой машине. Так же может отвечать за кодирование запроса и его аргументов и отправку закодированного запроса реальному «Субъекту». Виртуальный заместитель обеспечивает создание реального «Субъекта» только тогда, когда он действительно понадобится. Так же может кэшировать часть информации о реальном «Субъекте», чтобы отложить его создание. Копировать-при-записи: обеспечивает копирование «субъекта» при выполнении клиентом определённых действий. Защищающий заместитель: может проверять, имеет ли вызывающий объект необходимые для выполнения запроса права. Кэширующий прокси: обеспечивает временное хранение результатов расчёта до отдачи их множественным клиентам, которые могут разделить эти результаты. Экранирующий прокси: защищает «Субъект» от опасных клиентов (или наоборот). Синхронизирующий прокси: производит синхронизированный контроль доступа к «Субъекту» в асинхронной многопоточной среде. Smart reference proxy: производит дополнительные действия, когда на «Субъект» создается ссылка, например, рассчитывает количество активных ссылок на «Субъект».

Слайд 28


Паттерны проектирования, слайд №28
Описание слайда:

Слайд 29


Как обрабатывать группу или композицию структур объектов одновременно? Как обрабатывать группу или композицию структур объектов одновременно?
Описание слайда:
Как обрабатывать группу или композицию структур объектов одновременно? Как обрабатывать группу или композицию структур объектов одновременно?

Слайд 30


Определить классы для композитных и атомарных объектов таким образом, чтобы они реализовывали один и тот же интерфейс. Определить классы для...
Описание слайда:
Определить классы для композитных и атомарных объектов таким образом, чтобы они реализовывали один и тот же интерфейс. Определить классы для композитных и атомарных объектов таким образом, чтобы они реализовывали один и тот же интерфейс.

Слайд 31


Паттерны проектирования, слайд №31
Описание слайда:

Слайд 32


Необходимо объединять группы схожих объектов и управлять ими. Необходимо объединять группы схожих объектов и управлять ими. Объекты могут быть как...
Описание слайда:
Необходимо объединять группы схожих объектов и управлять ими. Необходимо объединять группы схожих объектов и управлять ими. Объекты могут быть как примитивными (элементарными), так и составными (сложными). Составной объект может включать в себя коллекции других объектов, образуя сложные древовидные структуры. Пример: директория файловой системы состоит из элементов, каждый их которых также может быть директорией. Код клиента работает с примитивными и составными объектами единообразно.

Слайд 33


Паттерны проектирования, слайд №33
Описание слайда:

Слайд 34


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

Слайд 35


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

Слайд 36


Можно использовать если, например, реализацию необходимо выполнять во время реализации программы. Можно использовать если, например, реализацию...
Описание слайда:
Можно использовать если, например, реализацию необходимо выполнять во время реализации программы. Можно использовать если, например, реализацию необходимо выполнять во время реализации программы.

Слайд 37


"Абстракция" определяет интерфейс "Абстракции" и хранит ссылку на объект "Реализация", "УточненнаяАбстракция"...
Описание слайда:
"Абстракция" определяет интерфейс "Абстракции" и хранит ссылку на объект "Реализация", "УточненнаяАбстракция" расширяет интерфейс, определенный "Абстракцией". "Реализация" определяет интерфейс для классов реализации, он не обязан точно соответствовать интерфейсу класса "Абстракция" - оба интерфейса могут быть совершенно различны. Обычно интерфецйс класса "Реализация" предоставляет только примитивные операции, а класс "Абстракция" определяет операции более высокого уровня, базирующиеся на этих примитивных. "КонкретнаяРеализация" содержит конкретную реализацию класса "Реализация". Объект "Абстракция" перенаправляет своему объекту "Реализация" запросы "Клиента". "Абстракция" определяет интерфейс "Абстракции" и хранит ссылку на объект "Реализация", "УточненнаяАбстракция" расширяет интерфейс, определенный "Абстракцией". "Реализация" определяет интерфейс для классов реализации, он не обязан точно соответствовать интерфейсу класса "Абстракция" - оба интерфейса могут быть совершенно различны. Обычно интерфецйс класса "Реализация" предоставляет только примитивные операции, а класс "Абстракция" определяет операции более высокого уровня, базирующиеся на этих примитивных. "КонкретнаяРеализация" содержит конкретную реализацию класса "Реализация". Объект "Абстракция" перенаправляет своему объекту "Реализация" запросы "Клиента".

Слайд 38


Паттерны проектирования, слайд №38
Описание слайда:

Слайд 39


Отделение реализации от интерфейса, то есть, "Реализацию" "Абстракции" можно конфигурировать во время выполнения. Кроме того,...
Описание слайда:
Отделение реализации от интерфейса, то есть, "Реализацию" "Абстракции" можно конфигурировать во время выполнения. Кроме того, следует упомянуть, что разделение классов "Абстракция" и "Реализация" устраняет зависимости от реализации, устанавливаемые на этапе компиляции: чтобы изменить класс "Реализация" вовсе не обязательно перекомпилировать класс "Абстракция". Отделение реализации от интерфейса, то есть, "Реализацию" "Абстракции" можно конфигурировать во время выполнения. Кроме того, следует упомянуть, что разделение классов "Абстракция" и "Реализация" устраняет зависимости от реализации, устанавливаемые на этапе компиляции: чтобы изменить класс "Реализация" вовсе не обязательно перекомпилировать класс "Абстракция".

Слайд 40


Паттерны проектирования, слайд №40
Описание слайда:

Слайд 41


Необходимо обеспечить поддержку множества мелких объектов. Необходимо обеспечить поддержку множества мелких объектов.
Описание слайда:
Необходимо обеспечить поддержку множества мелких объектов. Необходимо обеспечить поддержку множества мелких объектов.

Слайд 42


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

Слайд 43


Создать разделяемый объект, который можно использовать одновременно в нескольких контекстах, причем, в каждом контексте он выглядит как независимый...
Описание слайда:
Создать разделяемый объект, который можно использовать одновременно в нескольких контекстах, причем, в каждом контексте он выглядит как независимый объект (неотличим от экземпляра, который не разделяется). «Приспособленец» объявляет интерфейс, с помощью которого приспособленцы могут получить внешнее состояние или как-то воздействовать на него, "КонкретныйПриспособленец" реализует интерфейс класса "Приспособленец" и добавляет при необходимости внутреннее состояние. Внутреннее состояние хранится в объекте "КонкретныйПриспособленец", в то время как внешнее состояние хранится или вычисляется "Клиентами" ("Клиент" передает его "Приспособленцу" при вызове операций). Создать разделяемый объект, который можно использовать одновременно в нескольких контекстах, причем, в каждом контексте он выглядит как независимый объект (неотличим от экземпляра, который не разделяется). «Приспособленец» объявляет интерфейс, с помощью которого приспособленцы могут получить внешнее состояние или как-то воздействовать на него, "КонкретныйПриспособленец" реализует интерфейс класса "Приспособленец" и добавляет при необходимости внутреннее состояние. Внутреннее состояние хранится в объекте "КонкретныйПриспособленец", в то время как внешнее состояние хранится или вычисляется "Клиентами" ("Клиент" передает его "Приспособленцу" при вызове операций).

Слайд 44


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

Слайд 45


Паттерны проектирования, слайд №45
Описание слайда:

Слайд 46


Вследствие уменьшения общего числа экземпляров и вынесения состояния экономится память. Вследствие уменьшения общего числа экземпляров и вынесения...
Описание слайда:
Вследствие уменьшения общего числа экземпляров и вынесения состояния экономится память. Вследствие уменьшения общего числа экземпляров и вынесения состояния экономится память.

Слайд 47


Паттерны проектирования, слайд №47
Описание слайда:

Слайд 48


Как обеспечить унифицированный интерфейс с набором разрозненных реализаций или интерфейсов, например, с подсистемой, если нежелательно высокое...
Описание слайда:
Как обеспечить унифицированный интерфейс с набором разрозненных реализаций или интерфейсов, например, с подсистемой, если нежелательно высокое связывание с этой подсистемой или реализация подсистемы может измениться? Как обеспечить унифицированный интерфейс с набором разрозненных реализаций или интерфейсов, например, с подсистемой, если нежелательно высокое связывание с этой подсистемой или реализация подсистемы может измениться?

Слайд 49


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

Слайд 50


Паттерны проектирования, слайд №50
Описание слайда:

Слайд 51


Паттерны проектирования, слайд №51
Описание слайда:

Слайд 52


Паттерны проектирования, слайд №52
Описание слайда:

Слайд 53


Имеется часто встречающаяся, подверженная изменениям задача. Имеется часто встречающаяся, подверженная изменениям задача.
Описание слайда:
Имеется часто встречающаяся, подверженная изменениям задача. Имеется часто встречающаяся, подверженная изменениям задача.

Слайд 54


Создать интерпретатор, который решает данную задачу. Создать интерпретатор, который решает данную задачу.
Описание слайда:
Создать интерпретатор, который решает данную задачу. Создать интерпретатор, который решает данную задачу.

Слайд 55


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

Слайд 56


Паттерны проектирования, слайд №56
Описание слайда:

Слайд 57


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

Слайд 58


Сопровождение грамматики с большим числом правил затруднительно. Сопровождение грамматики с большим числом правил затруднительно.
Описание слайда:
Сопровождение грамматики с большим числом правил затруднительно. Сопровождение грамматики с большим числом правил затруднительно.

Слайд 59


Паттерны проектирования, слайд №59
Описание слайда:

Слайд 60


Составной объект, например, список, должен предоставлять доступ к своим элементам (объектам), не раскрывая их внутреннюю структуру, причем перебирать...
Описание слайда:
Составной объект, например, список, должен предоставлять доступ к своим элементам (объектам), не раскрывая их внутреннюю структуру, причем перебирать список требуется по-разному в зависимости от задачи. Составной объект, например, список, должен предоставлять доступ к своим элементам (объектам), не раскрывая их внутреннюю структуру, причем перебирать список требуется по-разному в зависимости от задачи.

Слайд 61


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

Слайд 62


Паттерны проектирования, слайд №62
Описание слайда:

Слайд 63


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

Слайд 64


Паттерны проектирования, слайд №64
Описание слайда:

Слайд 65


Необходимо послать объекту запрос, не зная о том, выполнение какой операции запрошено и кто будет получателем. Необходимо послать объекту запрос, не...
Описание слайда:
Необходимо послать объекту запрос, не зная о том, выполнение какой операции запрошено и кто будет получателем. Необходимо послать объекту запрос, не зная о том, выполнение какой операции запрошено и кто будет получателем.

Слайд 66


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

Слайд 67


Паттерны проектирования, слайд №67
Описание слайда:

Слайд 68


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

Слайд 69


Паттерны проектирования, слайд №69
Описание слайда:

Слайд 70


Один объект ("Подписчик") должен знать об изменении состояний или некоторых событиях другого объекта. При этом необходимо поддерживать...
Описание слайда:
Один объект ("Подписчик") должен знать об изменении состояний или некоторых событиях другого объекта. При этом необходимо поддерживать низкий уровень связывания с объектом - "Подписчиком". Один объект ("Подписчик") должен знать об изменении состояний или некоторых событиях другого объекта. При этом необходимо поддерживать низкий уровень связывания с объектом - "Подписчиком".

Слайд 71


Определить интерфейс "Подписки". Объекты - подписчики реализуют этот интерфейс и динамически регистрируются для получении информации о...
Описание слайда:
Определить интерфейс "Подписки". Объекты - подписчики реализуют этот интерфейс и динамически регистрируются для получении информации о некотором событии. Затем при реализации условленного события оповещаются все объекты - подписчики. Определить интерфейс "Подписки". Объекты - подписчики реализуют этот интерфейс и динамически регистрируются для получении информации о некотором событии. Затем при реализации условленного события оповещаются все объекты - подписчики.

Слайд 72


Паттерны проектирования, слайд №72
Описание слайда:

Слайд 73


Паттерны проектирования, слайд №73
Описание слайда:

Слайд 74


Над каждым объектом некоторой структуры выполняется операция. Определить новую операцию, не изменяя классы объектов. Над каждым объектом некоторой...
Описание слайда:
Над каждым объектом некоторой структуры выполняется операция. Определить новую операцию, не изменяя классы объектов. Над каждым объектом некоторой структуры выполняется операция. Определить новую операцию, не изменяя классы объектов.

Слайд 75


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

Слайд 76


Паттерны проектирования, слайд №76
Описание слайда:

Слайд 77


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

Слайд 78


Упрощается добавление новых операций, объединяет родственные операции в классе "Посетитель". Упрощается добавление новых операций,...
Описание слайда:
Упрощается добавление новых операций, объединяет родственные операции в классе "Посетитель". Упрощается добавление новых операций, объединяет родственные операции в классе "Посетитель".

Слайд 79


Затруднено добавление новых классов "КонкретныйЭлемент", поскольку требуется объявление новой абстрактной операции в классе...
Описание слайда:
Затруднено добавление новых классов "КонкретныйЭлемент", поскольку требуется объявление новой абстрактной операции в классе "Посетитель". Затруднено добавление новых классов "КонкретныйЭлемент", поскольку требуется объявление новой абстрактной операции в классе "Посетитель".

Слайд 80


Паттерны проектирования, слайд №80
Описание слайда:

Слайд 81


Затруднено добавление новых классов "КонкретныйЭлемент", поскольку требуется объявление новой абстрактной операции в классе...
Описание слайда:
Затруднено добавление новых классов "КонкретныйЭлемент", поскольку требуется объявление новой абстрактной операции в классе "Посетитель". Затруднено добавление новых классов "КонкретныйЭлемент", поскольку требуется объявление новой абстрактной операции в классе "Посетитель".

Слайд 82


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

Слайд 83


Паттерны проектирования, слайд №83
Описание слайда:

Слайд 84


Устраняется связанность между "Коллегами", централизуется управление. Устраняется связанность между "Коллегами", централизуется...
Описание слайда:
Устраняется связанность между "Коллегами", централизуется управление. Устраняется связанность между "Коллегами", централизуется управление.

Слайд 85


Паттерны проектирования, слайд №85
Описание слайда:

Слайд 86


Варьировать поведение объекта в зависимости от его внутреннего состояния Варьировать поведение объекта в зависимости от его внутреннего состояния
Описание слайда:
Варьировать поведение объекта в зависимости от его внутреннего состояния Варьировать поведение объекта в зависимости от его внутреннего состояния

Слайд 87


Класс "Контекст" делегирует зависящие от состояния запросы текущему объекту "КонкретноеСостояние" (хранит экземпляр подкласса...
Описание слайда:
Класс "Контекст" делегирует зависящие от состояния запросы текущему объекту "КонкретноеСостояние" (хранит экземпляр подкласса "КонкретноеСостояние", которым определяется текущее состояние), и определяет интерфейс, представляющий интерес для клиентов. "КонкретноеСостояние" реализует поведение, ассоциированное с неким состоянием объекта "Контекст". "Состояние" определяет интерфейс для инкапсуляции поведения, ассоциированного с конкретным экземпляром "Контекста". Класс "Контекст" делегирует зависящие от состояния запросы текущему объекту "КонкретноеСостояние" (хранит экземпляр подкласса "КонкретноеСостояние", которым определяется текущее состояние), и определяет интерфейс, представляющий интерес для клиентов. "КонкретноеСостояние" реализует поведение, ассоциированное с неким состоянием объекта "Контекст". "Состояние" определяет интерфейс для инкапсуляции поведения, ассоциированного с конкретным экземпляром "Контекста".

Слайд 88


Паттерны проектирования, слайд №88
Описание слайда:

Слайд 89


Локализует зависящее от состояния поведение и делит его на части, соответствующие состояниям, переходы между состояниями становятся явными....
Описание слайда:
Локализует зависящее от состояния поведение и делит его на части, соответствующие состояниям, переходы между состояниями становятся явными. Локализует зависящее от состояния поведение и делит его на части, соответствующие состояниям, переходы между состояниями становятся явными.

Слайд 90


Паттерны проектирования, слайд №90
Описание слайда:

Слайд 91


Спроектировать изменяемые, но надежные алгоритмы или стратегии Спроектировать изменяемые, но надежные алгоритмы или стратегии
Описание слайда:
Спроектировать изменяемые, но надежные алгоритмы или стратегии Спроектировать изменяемые, но надежные алгоритмы или стратегии

Слайд 92


Определить для каждого алгоритма или стратегии отдельный класс со стандартным интерфейсом. Определить для каждого алгоритма или стратегии отдельный...
Описание слайда:
Определить для каждого алгоритма или стратегии отдельный класс со стандартным интерфейсом. Определить для каждого алгоритма или стратегии отдельный класс со стандартным интерфейсом.

Слайд 93


Обеспечение сложной логики вычисления стоимости товаров с учетом сезонных скидок, скидок постоянным клиентам и т. п. Данная стратегия может...
Описание слайда:
Обеспечение сложной логики вычисления стоимости товаров с учетом сезонных скидок, скидок постоянным клиентам и т. п. Данная стратегия может изменяться. Обеспечение сложной логики вычисления стоимости товаров с учетом сезонных скидок, скидок постоянным клиентам и т. п. Данная стратегия может изменяться. Создается несколько классов "Стратегия", каждый из которых содержит один и тот же полиморфный метод "ЦенаРассчитать". В качестве параметров в этот метод передаются данные о продаже. Объект стратегии связывается с контекстным объектом (тем объектом, к которому применяется алгоритм).

Слайд 94


Паттерны проектирования, слайд №94
Описание слайда:

Слайд 95


Паттерны проектирования, слайд №95
Описание слайда:

Слайд 96


Необходимо зафиксировать поведение объекта для реализации, например, механизма отката. Необходимо зафиксировать поведение объекта для реализации,...
Описание слайда:
Необходимо зафиксировать поведение объекта для реализации, например, механизма отката. Необходимо зафиксировать поведение объекта для реализации, например, механизма отката.

Слайд 97


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

Слайд 98


Паттерны проектирования, слайд №98
Описание слайда:

Слайд 99


Не раскрывается информация, которая доступна только "Хозяину", упрощается структура "Хозяина". Не раскрывается информация,...
Описание слайда:
Не раскрывается информация, которая доступна только "Хозяину", упрощается структура "Хозяина". Не раскрывается информация, которая доступна только "Хозяину", упрощается структура "Хозяина".

Слайд 100


С использованием "Хранителей" могут быть связаны значительные издержки, если "Хозяин" должен копировать большой объём информации,...
Описание слайда:
С использованием "Хранителей" могут быть связаны значительные издержки, если "Хозяин" должен копировать большой объём информации, или если копирование должно проводиться часто. С использованием "Хранителей" могут быть связаны значительные издержки, если "Хозяин" должен копировать большой объём информации, или если копирование должно проводиться часто.

Слайд 101


Паттерны проектирования, слайд №101
Описание слайда:

Слайд 102


Запрос должен быть обработан несколькими объектами. Запрос должен быть обработан несколькими объектами.
Описание слайда:
Запрос должен быть обработан несколькими объектами. Запрос должен быть обработан несколькими объектами.

Слайд 103


Логично использовать данный паттерн, если имеется более одного объекта, способного обработать запрос и обработчик заранее неизвестен (и должен быть...
Описание слайда:
Логично использовать данный паттерн, если имеется более одного объекта, способного обработать запрос и обработчик заранее неизвестен (и должен быть найден автоматически) или если весь набор обьектов, которые способны обработать запрос, должен задаваться автоматически. Логично использовать данный паттерн, если имеется более одного объекта, способного обработать запрос и обработчик заранее неизвестен (и должен быть найден автоматически) или если весь набор обьектов, которые способны обработать запрос, должен задаваться автоматически.

Слайд 104


Связать объекты - получатели запроса в цепочку и передать запрос вдоль этой цепочки, пока он не будет обработан. "Обработчик" определяет...
Описание слайда:
Связать объекты - получатели запроса в цепочку и передать запрос вдоль этой цепочки, пока он не будет обработан. "Обработчик" определяет интерфейс для обработки запросов, и, возможно, реализует связь с преемником, "КонкретныйОбработчик" обрабатывает запрос, за который отвечает, имеет доступ к своему преемнику ("КонкретныйОбработчик" направляет запрос к своему преемнику, если не может обработать запрос сам. Связать объекты - получатели запроса в цепочку и передать запрос вдоль этой цепочки, пока он не будет обработан. "Обработчик" определяет интерфейс для обработки запросов, и, возможно, реализует связь с преемником, "КонкретныйОбработчик" обрабатывает запрос, за который отвечает, имеет доступ к своему преемнику ("КонкретныйОбработчик" направляет запрос к своему преемнику, если не может обработать запрос сам.

Слайд 105


Паттерны проектирования, слайд №105
Описание слайда:

Слайд 106


Ослабляется связанность (объект не обязан "знать", кто именно обработает его запрос). Ослабляется связанность (объект не обязан...
Описание слайда:
Ослабляется связанность (объект не обязан "знать", кто именно обработает его запрос). Ослабляется связанность (объект не обязан "знать", кто именно обработает его запрос).

Слайд 107


Нет гарантий, что запрос будет обработан, поскольку он не имеет явного получателя. Нет гарантий, что запрос будет обработан, поскольку он не имеет...
Описание слайда:
Нет гарантий, что запрос будет обработан, поскольку он не имеет явного получателя. Нет гарантий, что запрос будет обработан, поскольку он не имеет явного получателя.

Слайд 108


Паттерны проектирования, слайд №108
Описание слайда:

Слайд 109


Определить алгоритм и реализовать возможность переопределения некоторых шагов алгоритма для подклассов (без изменения общей структуры алгоритма....
Описание слайда:
Определить алгоритм и реализовать возможность переопределения некоторых шагов алгоритма для подклассов (без изменения общей структуры алгоритма. Определить алгоритм и реализовать возможность переопределения некоторых шагов алгоритма для подклассов (без изменения общей структуры алгоритма.

Слайд 110


АбстрактныйКласс" определяет абстрактные Операции(), замещаемые в конкретных подклассах для реализации шагов алгоритма, и реализует...
Описание слайда:
АбстрактныйКласс" определяет абстрактные Операции(), замещаемые в конкретных подклассах для реализации шагов алгоритма, и реализует ШаблонныйМетод(), определяющий "скелет" алгоритма. "КонкретныйКласс" релизует Операции(), выполняющие шаги алгоритма способом, который зависит от подкласса. "КонкретныйКласс" предполагает, что инвариантные шаги алгоритма будут выполнены в "АбстрактномКлассе". АбстрактныйКласс" определяет абстрактные Операции(), замещаемые в конкретных подклассах для реализации шагов алгоритма, и реализует ШаблонныйМетод(), определяющий "скелет" алгоритма. "КонкретныйКласс" релизует Операции(), выполняющие шаги алгоритма способом, который зависит от подкласса. "КонкретныйКласс" предполагает, что инвариантные шаги алгоритма будут выполнены в "АбстрактномКлассе".

Слайд 111


Паттерны проектирования, слайд №111
Описание слайда:

Слайд 112


Паттерны проектирования, слайд №112
Описание слайда:

Слайд 113


Паттерны проектирования, слайд №113
Описание слайда:

Слайд 114


Создать семейство взаимосвязанных или взаимозависимых обьектов (не специфицируя их конкретных классов). Создать семейство взаимосвязанных или...
Описание слайда:
Создать семейство взаимосвязанных или взаимозависимых обьектов (не специфицируя их конкретных классов). Создать семейство взаимосвязанных или взаимозависимых обьектов (не специфицируя их конкретных классов).

Слайд 115


Создать абстрактный класс, в котором объявлен интерфейс для создания конкретных классов. Создать абстрактный класс, в котором объявлен интерфейс для...
Описание слайда:
Создать абстрактный класс, в котором объявлен интерфейс для создания конкретных классов. Создать абстрактный класс, в котором объявлен интерфейс для создания конкретных классов.

Слайд 116


Паттерны проектирования, слайд №116
Описание слайда:

Слайд 117


Изолирует конкретные классы. Поскольку "Абстрактная фабрика" инкапсулирует ответственность за создание классов и сам процесс их создания,...
Описание слайда:
Изолирует конкретные классы. Поскольку "Абстрактная фабрика" инкапсулирует ответственность за создание классов и сам процесс их создания, то она изолирует клиента от деталей реализации классов. Упрощена замена "Абстрактной фабрики", поскольку она используется в приложении только один раз при инстанцировании. Изолирует конкретные классы. Поскольку "Абстрактная фабрика" инкапсулирует ответственность за создание классов и сам процесс их создания, то она изолирует клиента от деталей реализации классов. Упрощена замена "Абстрактной фабрики", поскольку она используется в приложении только один раз при инстанцировании.

Слайд 118


Интерфейс "Абстрактной фабрики" фиксирует набор обьектов, которые можно создать. Расширение "Абстрактной фабрики" для...
Описание слайда:
Интерфейс "Абстрактной фабрики" фиксирует набор обьектов, которые можно создать. Расширение "Абстрактной фабрики" для изготовления новых обьектов часто затруднительно. Интерфейс "Абстрактной фабрики" фиксирует набор обьектов, которые можно создать. Расширение "Абстрактной фабрики" для изготовления новых обьектов часто затруднительно.

Слайд 119


Паттерны проектирования, слайд №119
Описание слайда:

Слайд 120


Создать класс и определить статический метод класса, возвращающий этот единственный объект. Создать класс и определить статический метод класса,...
Описание слайда:
Создать класс и определить статический метод класса, возвращающий этот единственный объект. Создать класс и определить статический метод класса, возвращающий этот единственный объект.

Слайд 121


Интерфейс "Абстрактной фабрики" фиксирует набор обьектов, которые можно создать. Расширение "Абстрактной фабрики" для...
Описание слайда:
Интерфейс "Абстрактной фабрики" фиксирует набор обьектов, которые можно создать. Расширение "Абстрактной фабрики" для изготовления новых обьектов часто затруднительно. Интерфейс "Абстрактной фабрики" фиксирует набор обьектов, которые можно создать. Расширение "Абстрактной фабрики" для изготовления новых обьектов часто затруднительно.

Слайд 122


Паттерны проектирования, слайд №122
Описание слайда:

Слайд 123


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

Слайд 124


Паттерны проектирования, слайд №124
Описание слайда:

Слайд 125


Система не должна зависеть от того, как в ней создаются, компонуются и представляются объекты. Система не должна зависеть от того, как в ней...
Описание слайда:
Система не должна зависеть от того, как в ней создаются, компонуются и представляются объекты. Система не должна зависеть от того, как в ней создаются, компонуются и представляются объекты.

Слайд 126


Создавать новые объекты с помощью паттерна - прототипа. "Прототип" объявляет интерфейс для клонирования самого себя. "Клиент"...
Описание слайда:
Создавать новые объекты с помощью паттерна - прототипа. "Прототип" объявляет интерфейс для клонирования самого себя. "Клиент" создает новый объект, обращаясь к "Прототипу" с запросом клонировать "Прототип". Создавать новые объекты с помощью паттерна - прототипа. "Прототип" объявляет интерфейс для клонирования самого себя. "Клиент" создает новый объект, обращаясь к "Прототипу" с запросом клонировать "Прототип".

Слайд 127


Паттерны проектирования, слайд №127
Описание слайда:

Слайд 128


Паттерны проектирования, слайд №128
Описание слайда:

Слайд 129


Отделить конструирование сложного объекта от его представления, так чтобы в результате одного и того же конструирования могли получаться различные...
Описание слайда:
Отделить конструирование сложного объекта от его представления, так чтобы в результате одного и того же конструирования могли получаться различные представления. Алгоритм создания сложного объекта не должен зависеть от того, из каких частей состоит объект и как они стыкуются между собой. Отделить конструирование сложного объекта от его представления, так чтобы в результате одного и того же конструирования могли получаться различные представления. Алгоритм создания сложного объекта не должен зависеть от того, из каких частей состоит объект и как они стыкуются между собой.

Слайд 130


"Клиент" создает объект - распорядитель "Директор" и конфигурирует его объектом - "Строителем". "Директор"...
Описание слайда:
"Клиент" создает объект - распорядитель "Директор" и конфигурирует его объектом - "Строителем". "Директор" уведомляет "Строителя" о том, что нужно построить очередную часть "Продукта". "Строитель" обрабатывает запросы "Директора" и добавляет новые части к "Продукту", затем "Клиент" забирает "Продукт" у "Строителя". "Клиент" создает объект - распорядитель "Директор" и конфигурирует его объектом - "Строителем". "Директор" уведомляет "Строителя" о том, что нужно построить очередную часть "Продукта". "Строитель" обрабатывает запросы "Директора" и добавляет новые части к "Продукту", затем "Клиент" забирает "Продукт" у "Строителя".

Слайд 131


Паттерны проектирования, слайд №131
Описание слайда:

Слайд 132


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

Слайд 133


Паттерны проектирования, слайд №133
Описание слайда:

Слайд 134


Определить интерфейс для создания объекта, но оставить подклассам решение о том, какой класс инстанцировать, то есть, делегировать инстанцирование...
Описание слайда:
Определить интерфейс для создания объекта, но оставить подклассам решение о том, какой класс инстанцировать, то есть, делегировать инстанцирование подклассам. Определить интерфейс для создания объекта, но оставить подклассам решение о том, какой класс инстанцировать, то есть, делегировать инстанцирование подклассам.

Слайд 135


Абстрактный класс "Создатель" объявляет ФабричныйМетод, возвращающий объект типа "Продукт" (абстрактный класс, определяющий...
Описание слайда:
Абстрактный класс "Создатель" объявляет ФабричныйМетод, возвращающий объект типа "Продукт" (абстрактный класс, определяющий интерфейс обьектов, создаваемых фабричным методом). "Создатель также может определить реализацию по умолчанию ФабричногоМетода, который возвращает "КонкретныйПродукт". "КонкретныйСоздатель" замещает ФабричныйМетод, возвращающий объект "КонкретныйПродукт". "Создатель" "полагается" на свои подклассы в определении ФабричногоМетода, возвращающего объект "КонкретныйПродукт". Абстрактный класс "Создатель" объявляет ФабричныйМетод, возвращающий объект типа "Продукт" (абстрактный класс, определяющий интерфейс обьектов, создаваемых фабричным методом). "Создатель также может определить реализацию по умолчанию ФабричногоМетода, который возвращает "КонкретныйПродукт". "КонкретныйСоздатель" замещает ФабричныйМетод, возвращающий объект "КонкретныйПродукт". "Создатель" "полагается" на свои подклассы в определении ФабричногоМетода, возвращающего объект "КонкретныйПродукт".

Слайд 136


Паттерны проектирования, слайд №136
Описание слайда:

Слайд 137


Избавляет проектировщика от необходимости встраивать в код зависящие от приложения классы. Избавляет проектировщика от необходимости встраивать в код...
Описание слайда:
Избавляет проектировщика от необходимости встраивать в код зависящие от приложения классы. Избавляет проектировщика от необходимости встраивать в код зависящие от приложения классы.

Слайд 138


Возникает дополнительный уровень подклассов. Возникает дополнительный уровень подклассов.
Описание слайда:
Возникает дополнительный уровень подклассов. Возникает дополнительный уровень подклассов.

Слайд 139


Паттерны проектирования, слайд №139
Описание слайда:



Похожие презентации
Mypresentation.ru
Загрузить презентацию