ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode


Стратегия — шаблон проектирования


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

Паттерн Стратегия

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

Ниже мы проиллюстрируем данное определение шаблона проектирования Стратегия примером задачи и программы, которая ее решает. А пока приведем классовую диаграмму для шаблона проектирования в нотации UML:

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

Шаблон Стратегия, согласно данной диаграммы, реализуется следующим образом (язык C#):

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

Выполняется алгоритм стратегии номер ОДИН.

Выполняется алгоритм стратегии номер ДВА.

Пример задачи, решаемой шаблоном Стратегия

Задание. Реализовать программный продукт, выполняющий проверку введенной пользователем строки — что введено (да или нет): число, строка в нижнем регистре или строка в верхнем регистре? При разработке использовать поведенческий шаблон проектирования «Стратегия».

Решение. Создадим следующий интерфейс для программы на Windows Forms:


Интерфейс программы, решающей задачу с помощью шаблона Стратегия

Исходный код программы на языке программирования C# приводим далее.

Демонстрация работы программы, решающей поставленную задачу и реализующей шаблон проектирования Стратегия:

Программа в действии. Используется паттерн Стратегия

Классовая диаграмма написанной программы выглядит следующим образом:

Классовая диаграмма программы, разработанной в рамках шаблона проектирования Стратегия (Strategy)

Скачать исходник программы из данного урока (для Visual Studio), можно, нажав на кнопку:

Скачать исходник

 

 

Достоинства и недостатки шаблона

Достоинства паттерна Стратегия:

  • Программу легче поддерживать и модифицировать, потому что весь набор алгоритмов расположен в обособленной иерархии классов
  • Шаблон Стратегия позволяет менять один алгоритм на другой во время исполнения программы («на лету»)
  • Данный шаблон скрывает подробности реализации алгоритмов от клиентов

Недостатки паттерна Стратегия:

  • Для корректной настройки программы ее пользователь должен знать об особенностях реализации всех алгоритмов
  • Количество классов в коде программного продукта, разработанного с помощью шаблона Стратегия, безусловно, возрастает

 

 

4.8/5 - (6 голосов)



Поделиться в соц. сетях:

Добавить комментарий

Ваш адрес email не будет опубликован.