Активный объект (шаблон проектирования)

Активный объект
Active Object
Описан в Design Patterns Нет

Активный объект (англ. Active object) — это шаблон проектирования, который отделяет поток выполнения метода от потока, в котором он был вызван[1]. Целью данного шаблона является предоставление параллельности выполнения используя асинхронные вызовы методов и планировщик обработки запросов[2].

Этот шаблон состоит из шести элементов[3]:

  • Объект-заместитель (proxy), который предоставляет интерфейс к публично-доступным методам клиента.
  • Интерфейс, который определяет методы доступа к активному объекту.
  • Список поступающих запросов от клиентов.
  • Планировщик (scheduler), который определяет порядок выполнения запросов.
  • Реализация методов активного объекта.
  • Процедура обратного вызова (callback) или переменная (variable) для получения клиентом результата.

Литература

[править | править код]
  1. Douglas C. Schmidt; Michael Stal, Hans Rohnert, and Frank Buschmann. Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects (англ.). — John Wiley & Sons, 2000. — ISBN 0-471-60695-2.
  2. Bass, L., Clements, P., Kazman, R. Software Architecture in Practice. Addison Wesley, 2003
  3. Lavender, R. Greg; Schmidt, Douglas C.: Active Object (PDF). Дата обращения: 2 февраля 2007. Архивировано 24 сентября 2012 года.