Паттерны на ruby: Команда

Vladislav Kopylov
1 min readSep 16, 2017

--

Описание:
Есть какой то объект с которым производятся манипуляции.
Нужно предоставить функционал ставить действия по манипуляции в очередь, логировать их или откатывать.
В таких случаях полезен паттерн Команда так как он превращает операцию в самостоятельный объект.

Пример задачи:
Приложение по манипуляции журналом сотрудников. С журналом можно делать следующие операции: добавления сотрудника,
удаления сотрудника, изменение адреса сотрудника, поиска и выгрузки всех данных. В случае ошибки, операции можно откатить.

Реализация:
Есть класс <EmployeeJournal> — это синглтон который может проводить необходимые манипуляции.
Есть абстрактный класс <AbstractCommand> от которого наследуются команды для какого то конкретного случая.
У каждого наследника <AbstractCommand> есть методы .execute, .unexecute для запуска манипуляции и отката назад.

--

--

Vladislav Kopylov
Vladislav Kopylov

Responses (1)