Паттерны на ruby: Наблюдатель

Vladislav Kopylov
1 min readSep 16, 2017

--

Описание:
Данный паттерн создает механизм подписки одних объектов на изменение состояний других объектов.

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

Реализация:

Для описания книжек создадим класс <Book>. За книги отвечает кладовщик (Storekeeper). Каждый день книги покупают покупатели (Customer). Для реализации подписки создадим абстрактный модуль Subject который можно будет заинклудить в класс <Book>. Благодаря чему экземпляры классов <Customer> и <Storekeeper> смогу подписываться на сообщения о состояниях книг.

--

--

Vladislav Kopylov
Vladislav Kopylov

No responses yet