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