Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Использование структурных шаблонов проектирования

Автор:   •  Май 7, 2018  •  Лабораторная работа  •  4,020 Слов (17 Страниц)  •  733 Просмотры

Страница 1 из 17

Липецкий государственный технический университет

Кафедра автоматизированных систем управления

Архитектура программных систем

Лабораторная работа №2

«Использование структурных шаблонов проектирования»

Студент

Дмитриев А.Р.

подпись, дата

фамилия, инициалы

Группа

АС-14-1

Принял

Алексеев В.А.

ученая степень, звание

подпись, дата

фамилия, инициалы

Липецк – 2018 г.

  1. Цель работы

Изучить шаблоны проектирования, относящиеся к классу структурных, освоить применение шаблонов этого класса при разработке программных систем с применением объектно-ориентированных языков программирования.

  1. Задание кафедры

Реализовать программу для решения задачи согласно варианту с использованием требуемого структурного шаблона проектирования.

Вариант 1.3 Декоратор:

На базе классов .NET Framework System.IO.StreamWriter, StreamReader реализовать набор классов, реализующих следующие преобразования текстовых данных с сохранением в файл:

  1. перевод фразами (предложениями) с использованием Google Translate API;
  2. Исправление регистра символов в предложениях (первый символ – прописной, остальные – строчные).

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

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


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

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

Паттерн Decorator (Декоратор)

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

Данный шаблон используется если необходимо:

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

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

[pic 1]

        Рисунок 1.ПаттернDecorator

  1. Описание условий и хода работы
  1. Используемые аппаратные и программные средства

Аппаратные средства:

  • Ноутбук DELL Inspiron 5570-0078
  • Операционная система Windows 10 Pro
  • Процессор Intel Core i7 – 7500U
  • Оперативная память 8ГБ DDR4
  • Размер экрана 15.6"
  • Разрешение 1920x1080
  • Видеопроцессор AMD Radeon R7 M440

Программные средства:

  • Visual Studio 2017
  • Microsoft Visio

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

        Component: абстрактный класс, который определяет интерфейс для наследуемых объектов

        ConcreteComponent: конкретная реализация компонента, в которую с помощью декоратора добавляется новая функциональность

        Decorator: собственно декоратор, реализуется в виде абстрактного класса и имеет тот же базовый класс, что и декорируемые объекты. Поэтому базовый класс Component должен быть по возможности легким и определять только базовый интерфейс.

...

Скачать:   txt (17.5 Kb)   pdf (451.8 Kb)   docx (110.4 Kb)  
Продолжить читать еще 16 страниц(ы) »
Доступно только на Essays.club