ПКРПСиБД LAB4 Захаров А.Е. (Лабораторная работа 4)
Описание файла
Файл "ПКРПСиБД LAB4 Захаров А.Е." внутри архива находится в папке "Лабораторная работа 4". Документ из архива "Лабораторная работа 4", который расположен в категории "". Всё это находится в предмете "распределённые ис и базы данных" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "распределённые ис и базы данных" в общих файлах.
Онлайн просмотр документа "ПКРПСиБД LAB4 Захаров А.Е."
Текст из документа "ПКРПСиБД LAB4 Захаров А.Е."
Национальный Исследовательский Университет
МОСКОВСКИЙ ЭНЕРГЕТИЧЕСКИЙ ИНСТИТУТ
Институт автоматики и вычислительной техники
Кафедра прикладной математики
Лабораторная работа № 4
Реализация одного из поведенческих шаблонов проектирования
Курс «Проектирование крупных распределенных программных систем и баз данных»
Выполнил
студент группы А-13-08
Захаров Антон
(8 вариант)
Преподаватель
к.т.н., доц. Куриленко Иван Евгеньевич
Цель работы
Научиться применять поведенческие шаблоны проектирования.
Порядок выполнения работы
-
С использованием одного из языков программирования из множества (C++, C#, Java) реализовать поведенческий шаблон проектирования «Состояние» (8 вариант).
-
Разработать UML модель.
Требования
-
Наличие работающей демонстрационной программы с исходным кодом.
-
Наличие UML-модели в электронном виде, иллюстрирующей шаблон, полученной с помощью специализированного диаграммера (Rational Enterprise Architect, Visual Paradigm, Visual Studio).
-
Наличие отчёта в печатном виде, содержащего теоретическое введение, UML-модель и исходный код.
Состояние
Поведенческий шаблон проектирования
Описание
Состояние (State) – поведенческий шаблон проектирования, применяющийся при создании объектов, которые могут находиться в одном из возможных состояний, влияющих на поведение этих объектов.
Уместность применения
Шаблон следует применять, если во время выполнения программы объект должен менять свое поведение в зависимости от своего состояния.
Преимущества, достигаемые при применении шаблона
-
Удобное и понятное разделение кода, обрабатывающего каждое из состояний.
-
Конечное множество состояний и тот факт, что объект может находиться только в одном из них, препятствуют возникновению ошибок.
Недостатки шаблона
-
Объект может находиться всегда только в одном состоянии.
Детали реализации
Шаблон реализуется следующим образом:
using System;
namespace lab4
{
class DKA
{
private IState state;
private IState stateS;
private IState stateQ;
private IState stateF;
public DKA()
{
stateS = new S();
stateQ = new Q();
stateF = new F();
state = stateS;
}
public bool check(string s)
{
state = stateS;
char[] symbols = s.ToCharArray();
foreach(char symbol in symbols) {
if (!Transition(Int32.Parse(symbol.ToString())))
return false;
}
bool result = state.Finish();
state = stateS;
return result;
}
public bool Transition(int s)
{
if (state is F) {
if (s >= 1 && s <= 9) {
state = stateQ;
return true;
}
return (s == 0);
}
if (state is Q) {
if (s == 0) {
state = stateF;
return true;
}
return false;
}
else // state is S
{
if (s >= 1 && s <= 9) {
state = stateQ;
return true;
}
return (s == 0);
}
}
}
interface IState
{
bool Finish();
}
abstract class State { }
class S : State, IState
{
public bool Finish()
{
return false;
}
}
class Q : State, IState
{
public bool Finish()
{
return false;
}
}
class F : State, IState
{
public bool Finish()
{
return true;
}
}
}
UML-диаграммы
Литература
-
Приёмы объектно-ориентированного проектирования. Паттерны проектирования. – СПб.: Питер, 2011. – 368 с.: ил.
-
PHP: объекты, шаблоны и методики программирования. 3-е изд.: Пер. с англ. – М. : ООО «И.Д. Вильямс», 2011. – 560 с. : ил. – Парал. тит. англ.
Москва, 2012