У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 2 Исследование способов применения поведенческих паттернов проектирования

Работа добавлена на сайт samzan.net: 2015-07-05

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 6.3.2025

Министерство образования науки, молодёжи и спорта Украины

Севастопольский национальный технический университет

Кафедра ИС

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

Исследование способов применения поведенческих паттернов проектирования

Выполнил:

ст. гр. И-22д

Масюк  А. В.

Проверил:

Дрозин А. Ю.

Севастополь

2013

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

Исследовать возможность использования поведенческих паттернов проектирования. Получить практические навыки применения паттернов поведения при объектно-ориентированном проектировании.

2. Постановка задачи с указанием моделируемой предметной области.

1. Для предметной области «обучение студента в университете»  выполнить анализ заданной предметной области, построить диаграмму классов, на диаграмме классов , найти класс-клиент, запрос от которого необходимо передавать по цепочке объектов,  и классы-получатели запросов, объекты которых целесообразно объединять в цепочку.

      2. Выполнить перепроектирование диаграммы классов использовав паттерн Цепочка обязанностей.

     3. Сравнить полученные диаграммы классов, сделать выводы и целесообразности использования паттернов проектирования для данной системы.

      4. На основе UML-диаграммы выполнить синтез программного кода, скомпилировать программу и продемонстрировать ее работоспособность.

3 Словесное описание мотивации применения паттерна Цепочка обязанностей при проектировании данной системы.

             Выбранная предметная область относится к сфере обучения, в которой, как правило, есть сторона учебного заведения(методист, лекторы и тп) и учащихся. Применение паттерна «Цепочка обязанностей» в данном случае аргументируется предоставление удобства в поисках преподавателей из разных стран с помощью уровня их зарплат. В данном случае  из класса Преподаватель идет запрос в классы –наследники на поиск и вывод информации о преподавателе(страна и зарплата).

4. ДИАГРАММЫ КЛАССОВ

Рисунок 4.1 – Исходная диаграмма классов.

Рисунок 4.2 – Модифицированная диаграмма классов.

5. ТЕСКТ ПРОГРАММЫ

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

public abstract class Lecturer {

 protected Lecturer successor;

   public  void SetSuccesessor(Lecturer succesessor) {

       this.successor = succesessor;

   }

   public abstract void GetSal(int salary);

}

public class Ukrainian : Lecturer

{

   public override void GetSal(int salary)

   {

       if (salary <= 500 && salary >= 300)

           Console.WriteLine("Found Ukrainian Assistant of Physics with salary: $ " + salary + "\n");

       else

           if (salary <= 750 && salary > 500)

               Console.WriteLine("Found Ukrainian Associate Professor of Physics with salary: $ " + salary + "\n");

           else

               if (salary <= 1000 && salary > 750)

                   Console.WriteLine("Found Ukrainian Professor of Physics with salary: $ " + salary + "\n");

               else if (successor != null)

               {

                   successor.GetSal(salary);

       }

   }

}

public class Arabic : Lecturer

{

   public override void GetSal(int salary)

   {

       if (salary <= 12000 && salary >= 10000)

           Console.WriteLine("Found Arabic Assistant of Chemistry with salary:  $ " + salary + "\n");

       else

           if (salary <= 15000 && salary > 12000)

               Console.WriteLine("Found Arabic Associate Professor of Chemistry with salary:  $ " + salary + "\n");

           else

               if (salary <= 17000 && salary > 15000)

                   Console.WriteLine("Found Arabic Professor of Chemistry with salary:  $ " + salary + "\n");

               else if (successor != null)

               {

                   successor.GetSal(salary);

         }

   }

}

public class American : Lecturer

{  

   public override void GetSal(int salary)

   {

       if (salary <= 3000 && salary >= 1500)

           Console.WriteLine("Found American Assistant of History with salary:  $ "+ salary + "\n");

       else

           if (salary <= 5000 && salary >= 3000)

               Console.WriteLine("Found American Associate Professor of History with salary:  $ "+ salary + "\n");

           else

               if (salary <= 7000 && salary >= 5000)

                   Console.WriteLine("Found American Professor of Chemistry with salary: $ " +salary + "\n");

               else if (successor != null)

               {

                   successor.GetSal(salary);

        }

}

}

class DemoChofRes {

   static void Main() {

        Lecturer prep1=new Ukrainian();

        Lecturer prep2 = new Arabic();

        Lecturer prep3=new American();

        Random ran = new Random();

              prep1.SetSuccesessor(prep2);

              prep2.SetSuccesessor(prep3);

       int[] salaries = new int[30];

       for (int i = 0; i < 30; i++) {

           salaries[i] = ran.Next(300, 17000);

       }

       foreach (int salary in salaries) {

           prep1.GetSal(salary);

       }

       Console.WriteLine("Press any key to exit.\n P.S.:Treatment was successful!)");

       Console.ReadKey();

   }

}

ВЫВОД

На лабораторной работе изучены принципы использования паттернов проектирования. Получены практические навыки применения паттернов поведения при объектно-ориентированном проектировании. Был изучен паттерн поведения – цепочка обязанностей. В данном конкретный объект обрабатывает запрос, а если не может обработать, передаёт его другому объекту.




1. Лабораторная работа 14 Определение входных и выходных характеристик транзистора
2. варианты ответов 1 Т Первородящая 22 лет поступила через.
3. Конструирование узлов и деталей машин
4.  Строительные процессы их содержание и структура
5. Тобольская государственная социальнопедагогическая академия им.1
6. Построение программы ведения электронной документации кадрового отдела
7. Концерн АФ нами був проведений за допомогою BCаналізу що у табл
8. Peterhof
9. Векторы. Действия над векторами
10. мама Белая кошка 2 Мария 89373319991 Кош