Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лабы / Лабораторная_работа_по_паттернам_new_—_копия.docx
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
1.18 Mб
Скачать

Output.Txt: Результат выполнения

Invoker: Does anybody want something done before I begin?

SimpleCommand: See, I can do simple things like printing (Say Hi!)

Invoker: ...doing something really important...

Invoker: Does anybody want something done after I finish?

ComplexCommand: Complex stuff should be done by a receiver object.

Receiver: Working on (Send email.)

Receiver: Also working on (Save report.)

Output.txt:

"Инвокер: Кто-нибудь хочет что-то сделать, прежде чем я начну?

SimpleCommand: Смотрите, я могу делать простые вещи, как печать (Скажи Привет!)

Инвокер:... делать что-то действительно важное ...

Invoker: Кто-нибудь хочет что-то сделать после того, как я закончу?

ComplexCommand: Сложные вещи должны быть сделаны на объекте приемника.

Приемник: Работа (Отправить электронную почту.)

.

Задания для лабораторной работы

В каждом из вариантов указан шаблон для реализации и проект, использующий этот шаблон.

Необходимо сделать следующее:

1. Нарисовать в UML диаграмму классов реализуемой программы. (проектирование)

2. Реализовать программу на С++. (реализация)

Для каждого из шаблонов, предложенных в вариантах можно найти пример реализации UML и кода в приложенной книге “Паттерны проектирования”.

Также указана глава, где подробно описан данный шаблон.

Вариант №1, 9, 17, 25

Шаблон “Стратегия”. Проект “Принтеры”. В проекте должны быть реализованы разные модели принтеров, которые выполняют разные виды печати. Пример использования шаблона в главе 1.

Вариант № 2, 10, 18, 26

Шаблон “Наблюдатель”. Проект “Оповещение постов ГАИ”. В проекте должна быть реализована отправка сообщений всем постам ГАИ. Пример использования шаблона в главе 2.

Вариант № 3, 11, 19, 27

Шаблон “Декоратор”. Проект “Универсальная электронная карта”. В проекте должна быть реализована универсальная электронная карта, в которой есть функции паспорта, страхового полиса, банковской карты и т. д. Пример использования шаблона в главе 3.

Вариант №4, 12, 20, 28

Шаблон “Фабричный метод”. Проект “Фабрика смартфонов”. В проекте должно быть реализовано создание смартфонов с различными характеристиками. Пример использования шаблона в главе 4.

Вариант №5, 13, 21, 29

Шаблон “Абстрактная фабрика”. Проект “Заводы по производству автомобилей”. В проекте должно быть реализована возможность создавать автомобили различных типов на разных заводах.

Вариант №6, 14, 22, 30

Шаблон “Команда”. Проект “Клавиатура настраимаемого калькулятора”. Цифровые и арифметические кнопки имеют фиксированную функцию, а остальные могут менять своё назначение.

Вариант №7, 15, 23

Шаблон “Адаптер”. Проект “Часы”. В проекте должен быть реализован адаптер, который дает возможность пользоваться часами со стрелками так же, как и цифровыми часами. В классе “Часы со стрелками” хранятся повороты стрелок. Пример использования шаблона в главе 7.

Вариант № 8, 16, 24

Шаблон “Фасад”. Проект “Компьютер”. В проекте должен быть реализован “компьютер”, который выполняет основные функции, к примеру, включение, выключение, запуск ОС, запуск программы, и т.д, не раскрывая клиенту деталей выполнения этой операции. Пример использования шаблона в главе 7.

Литература, ссылки

1. https://ru.wikipedia.org/wiki/%D8%E0%E1%EB%EE%ED_%EF%F0%EE%E5%EA%F2%E8%F0%

EE%E2%E0%ED%E8%FF

2. http://citforum.ru/SE/project/pattern/

3. Э.Фримен, К.Сьерра, Б.Бейтс Паттерны проектирования. СПб.:

Питер, 2011.

4. Классическая книга “банды четырех”. Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссидес. Приемы объектно-ориентированного

проектирования. Паттерны проектирования. (разные издания,

последнее 2015).