Паттерны на ruby: Стратегия

Vladislav Kopylov
1 min readSep 16, 2017

--

Описание:
Данный паттерн применяется в случае если входные данные/представление/вывод данных — одни и те же; логика обработки данных перед отдачей в представление — разное.
Краткий смысл паттерна — поместить алгоритмы/логику в отдельные объекты.

Пример задачи:
Нужно реализовать функционал шифрования текстового сообщения разными алгоритмами.

Реализация:
Создадим класс для текстового сообщения <TextMessage> который при инициализации принимает текстовое сообщение.
Сделаем этому классу атрибут .encryptor, с возможностью менять его значение налету.
Плюс добавим метод .encrypt_me для шифрования, который будет возвращать строку. Этот метод будет проверяет есть ли у значения атрибута .encryptor возможности вызова метода .encrypt, и если есть то вызывает его и передает наше сообщение.
В качестве алгоритмов шифрования создадим классы <SimpleEncryptor>, <Base64Encryptor> и <AESEncryptor> у каждого из которых будет метод .encrypt.

--

--

Vladislav Kopylov
Vladislav Kopylov

No responses yet