Материал: Паттерны проектирования программных систем (90

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

3.Краткие теоретические сведения.

3.1.Описание шаблона проектирования.

3.2.Классовая диаграмма для шаблона проектирования в нотации

UML.

4.Описание условий и хода работы.

4.1.Используемые аппаратные и программные средства.

4.2.Интерпретация шаблона проектирования для решения задачи.

4.3.Классовая диаграмма для задачи в нотации UML.

5.Результаты работы.

5.1.Текст программы (только классы, реализующие шаблон проектирования и клиентский код, использующий шаблон).

6.Анализ результатов работы.

(Скриншоты с результатами выполнения программы, содержание базы данных, файлов – в зависимости от варианта).

7.Выводы о достоинствах и недостатках используемого шаблона проектирования.

Контрольные вопросы

1.Назначение порождающих шаблонов проектирования. Перечень порождающих шаблонов.

2.Назначение и структура шаблона «абстрактная фабрика» (abstract factory). Преимущества и недостатки шаблона.

3.Назначение и структура шаблона «строитель» (builder).

Преимущества и недостатки шаблона.

4.Назначение и структура шаблона «фабричный метод» (factory method). Преимущества и недостатки шаблона.

5.Назначение и структура шаблона «отложенная (ленивая)

инициализация» (lazy initialization). Преимущества и недостатки шаблона.

5

6.Назначение и структура шаблона «пул одиночек» (multiton).

Преимущества и недостатки шаблона.

7.Назначение и структура шаблона «объектный пул Назначение и структура шаблона» (object pool). Преимущества и недостатки шаблона.

8.Назначение и структура шаблона «прототип» (prototype).

Преимущества и недостатки шаблона.

9.Назначение и структура шаблона «инициализация при получении ресурса» (resource acquisition is initialization – RAII). Преимущества и недостатки шаблона.

10.Назначение и структура шаблона «одиночка» (singleton).

Преимущества и недостатки шаблона.

Варианты

1.Фабричный метод.

1.1.В базе данных системы электронного документооборота обрабатываются документы 3-х типов: письма, приказы и распоряжения о командировке. Каждый документ имеет номер, дату и краткую информацию о содержании. Кроме того, в письме указывается тип (входящее/исходящее) и корреспондент, в приказе – подразделение, срок выполнения и ответственный исполнитель, в

распоряжении о командировке – сотрудник, период и место назначения.

Необходимо вывести:

1.Полный перечень документов.

2.Содержание выбранного документа (по номеру документа).

1.2.В базе данных компьютерного интернет-магазина хранится

номенклатура товаров 3-х типов: материнские платы, процессоры,

жесткие диски. Каждый товар имеет номенклатурный номер,

наименование и стоимость. Кроме того, для материнских плат

6

указывается тип сокета, количество процессоров, тип оперативной памяти, частота системной шины, для процессоров – тип сокета,

количество ядер, тактовая частота, техпроцесс, для жестких дисков – объем, скорость вращения, тип интерфейса.

Необходимо вывести:

1.Полную номенклатуру комплектующих.

2.Детальную информацию по товару (по номенклатурному номеру).

1.3.В информационной системе реализуется ввод и сохранение данных об абитуриентах: фамилия, имя, отчество, дата рождения, баллы за ЕГЭ (3

предмета), желательные специальности (3 специальности). Необходимо реализовать ввод и сохранение информации об абитуриенте в 3-х

форматах: текстовом, xml, таблица реляционной БД.

2.Строитель.

2.1.Информационная система обеспечивает формирование отчета по лабораторным работам студента ИТ-специальности. Рассматриваются дисциплины «Базы данных», «Компьютерные сети», «Программирование». Отчет должен включать следующие разделы:

титульный лист, цель работы, задание, теоретические сведения,

описание экспериментальной установки, результаты работы, анализ результатов работы, выводы. Необходимо реализовать ввод данных и подготовку отчета в формате html с учетом особенностей дисциплины

(наличие схем и других изображений или текста программы и т.п.).

2.2.Информационная система обеспечивает формирование отчетов по студенческим работам в соответствии с СТО-13-2011 СМК ЛГТУ

(рассмотреть любые 3 вида студенческих работ). Отчет в общем случае может включать следующие части: титульный лист, задание кафедры,

аннотация, оглавление, основная часть, список источников,

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

7

2.3.Информационная система предназначена для «сборки» комплектации автомобиля. В зависимости от марки и модели комплектация может включать, например, следующие категории элементов: экстерьер,

интерьер, комфорт, безопасность, мультимедиа и т.п. Реализовать

«сборку» различных комплектаций для выбранной модели автомобиля и подготовку сравнительной таблицы опций в формате html. При выполнении задания использовать реальный каталог выбранного автопроизводителя.

3.Абстрактная фабрика.

3.1.В строительной компании информационная система решает задачу оптимального выбора поставщиков строительных материалов (всего 3

поставщика). В строительстве используется 3 вида материалов: кирпич,

железобетонные плиты, бетон. Для каждого поставщика задан прайс-

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

когда поставщик не поставляет конкретный вид материала.

3.2.Информационная система предназначена для «сборки» моделей автомобилей. Модель автомобиля может включать, например,

следующие компоненты: кузов, двигатель, коробка передач,

диски/шины (выбрать не менее 3 компонентов). Описать каждый из компонентов классом с подходящим набором атрибутов, реализовать также класс «модель». Реализовать «сборку» различных моделей выбранного автопроизводителя (не менее 3 моделей) на основе реального каталога. Вывести описание моделей в html-файл.

4.Одиночка.

4.1.Реализовать ведение журнала событий программы в форматах:

текстовый файл, xml-файл (конкретный формат должен выбираться).

Сообщения, посылаемые в журнал, должны иметь тип (информация,

8

предупреждение или ошибка), источник (наименование модуля программы), метку даты/времени и содержание. Реализация должна быть потокобезопасной, т.е. обеспечивать корректную работу журнала

в случае, когда в приложении параллельно работает несколько потоков.

4.2.Реализовать хранение настроек программы в реестре Windows и xml-

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

5.Пул объектов.

5.1.Реализовать менеджер для загрузки файлов с разделяемого сетевого ресурса (файл-сервера) с поддержкой многопоточной загрузки.

Пользователь задает URI-адреса нескольких файлов, которые требуется загрузить. Для загрузки используется заданное количество объектов

(потоков) – не более 1 потока на 1 файл. Должна поддерживаться авторизация для доступа к файлам.

5.2.Реализовать менеджер для загрузки html-страниц с web-сервера с поддержкой многопоточной загрузки. Пользователь задает URL

страниц, которые требуется загрузить. Для загрузки используется заданное количество объектов (потоков) – не более 1 потока на 1 html-

страницу. Должна поддерживаться работа через прокси-сервер.

9

Источник: https://studfile.net/preview/16724806/