Подтвердить что ты не робот

Простое объяснение "Шаблон реактора" с его приложениями

Шаблон реактора объясняется в википедии, и он слишком абстрактен. Можете ли вы описать эту модель более конкретно? Идеально с фрагментами кода или диаграммами классов высокого уровня, описывающими некоторые применения схемы реактора.

4b9b3361

Ответ 1

Возможно, вы захотите проверить оригинальный документ с описанием его http://www.dre.vanderbilt.edu/~schmidt/PDF/reactor-siemens.pdf

Шаблон проектирования Reactor обрабатывает запросы на обслуживание, которые одновременно доставляются приложению одним или несколькими клиентами. Каждый сервис в приложении может состоять из нескольких методов и представлен отдельным обработчиком событий, который отвечает за отправку специфичных для сервиса запросов. Диспетчер обработчиков событий выполняется диспетчером инициации, который управляет зарегистрированными обработчиками событий. Демультиплексирование запросов на обслуживание выполняется демультиплексором синхронных событий.

Ответ 2

Реактор позволяет выполнять несколько задач, которые блокируют (скажем, из-за IO), эффективно обрабатывая один поток. Реактор управляет пулом обработчиков и запускает цикл событий. Когда он вызывается для выполнения задачи, он связывает его с новым или свободным обработчиком, делающим его активным. Цикл событий (1) находит все обработчики, которые активны и разблокированы (или делегирует это на реализацию диспетчера) (2) последовательно выполняет каждый из этих обработчиков, пока они не завершатся или не достигнут точки, где они блокируются. Завершенные обработчики становятся неактивными и пустыми для повторного использования, тогда как блокируются активные обработчики, позволяя продолжить цикл событий. (3) Повторяется с шага (1)