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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

 

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

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

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

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

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

 

 

Стратегия – шаблон проектирования
5 (100%) 4 votes

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

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">