Manager Class Design Pattern кратко

Лекция



Привет, Вы узнаете о том , что такое manager class, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое manager class , настоятельно рекомендую прочитать все из категории Проектирование веб сайта или программного обеспечения.

Программное обеспечение реального времени обычно управляет несколькими объектами одного типа. Здесь мы представляем шаблон проектирования диспетчера для управления несколькими объектами. Шаблон проектирования Manager описывается с помощью стандартного шаблона определения шаблона.

Подобные классы используются для управления набором объектов другого класса, которые часто являются ресурсами.

Например, предположим, что у вас есть пул подключений к базе данных, каждое из которых представлено объектом DBConnection класса.

Если вашему коду необходимо подключиться к БД через пул подключений, он просто запросит у DBConnection_Manager класса новое подключение. Зачем нужен класс менеджера?

Класс Manager сверится со своим списком объектов DBConnection, определит, не выделен ли какой-либо из них, и вернет один. Если все они выделены, он либо создаст один и добавит в пул (с учетом максимального количества разрешенных подключений), либо поместит запрос в очередь, либо сообщит об ошибке.

ВСЕ эти функции полностью скрыты от вызывающего - мельчайшие детали управления пулом - это работа класса Manager.

Это всего лишь конкретный пример, но идея состоит в том, что управление ресурсами централизовано и инкапсулировано с помощью класса Manager, а пользовательский код просто запрашивает «ресурс».


Назначение

Основная цель здесь - управлять несколькими объектами одного типа. Например, диспетчер терминалов будет управлять всеми объектами терминала, находящимися под его контролем. Это будет включать создание Терминала, удаление Терминала, маршрутизацию сообщений на Терминал и координацию таких действий, как переключение между двумя Терминалами.

Также известный как

  • Шаблон проектирования, управляемый менеджером
  • Шаблон проектирования управляемого объекта

Мотивация

Рассмотрим случай, когда объект Manager не определен. Об этом говорит сайт https://intellect.icu . Каждый объект Терминал должен знать обо всех других объектах Терминала для целей маршрутизации сообщений и координации. Также при отсутствии Менеджера не будет единой точки для создания и удаления объекта Терминал.

Применимость

Этот шаблон проектирования можно применять всякий раз, когда системе необходимо поддерживать множество объектов одного и того же или аналогичного типа. Объект Manager предназначен для отслеживания всех сущностей. Во многих случаях Менеджер также направляет сообщения отдельным объектам.

Состав

Объект Manager может управлять всеми объектами сущности, реализуя стандартные структуры данных, такие как массив или карта STL. Идея состоит в том, чтобы иметь быстрый способ индексирования, чтобы добраться до конкретной сущности. Эта возможность индексирования требуется для быстрого доступа к объекту по числовому идентификатору, назначенному объекту. Этот числовой идентификатор обычно включается во все сообщения, полученные для этих объектов.

Участники

Объект Manager и Managed Entities являются основными действующими лицами в этом шаблоне проектирования. Один объект Manager управляет несколькими объектами сущностей.

Сотрудничество

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

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

Последствия

Объект Manager представляет чистый интерфейс для связи с любыми управляемыми объектами. Он также предоставляет централизованную точку для координации операций над несколькими объектами сущностей.

Реализация

Как упоминалось ранее, объект Manager содержит массив или карту STL всех объектов, находящихся под его контролем. Коллекция сущностей может поддерживаться как указатели на объекты сущностей или сами объекты сущностей.

Пример кода и использование

Базовый пример

var m: Mananger = new ManagerClass();
m.doSomething();

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

Диспетчер терминалов и терминал

Manager Class Design Pattern

Известные применения

Шаблон проектирования менеджера используется везде, где необходимо управлять несколькими объектами с одинаковым или похожим поведением.

Например в случае ActionScript такой класс можно использовать для управления звуками, слушателями событий или виджетами графического интерфейса (например, контекстными меню).

Связанные шаблоны

Шаблоны проектирования функций, такие как параллельная и последовательная координация

Недостатки

Классы менеджеров - это обычная свалка кода, который почему-то не подошел где-то еще. Они также имеют тенденцию быть или стать классами богов .

Некоторые считают менеджеров запахом кода

Вау!! 😲 Ты еще не читал? Это зря!

Исследование, описанное в статье про manager class, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое manager class и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Проектирование веб сайта или программного обеспечения

Из статьи мы узнали кратко, но содержательно про manager class
создано: 2021-09-03
обновлено: 2026-03-09
35



Помог ли вам этот ответ?
Нажмите оценку и напишите коротко почему. Так мы сможем сделать следующие ответы точнее и полезнее.
Насколько вы довольны ответом?
Ваш отзыв напрямую влияет на качество следующих подсказок и ответов.


Поделиться:
Пожаловаться

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выполнения задания
  • Возможно применение функции гаранта на сделку
  • Приоритетная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можете продать (как исполнитель) или купить (как заказчик) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно применение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии

Оставить комментарий

Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Лекции и учебник по "Проектирование веб сайта или программного обеспечения"

Термины: Проектирование веб сайта или программного обеспечения