Есть ли такая вещь, как шаблон проектирования менеджера? - PullRequest
38 голосов
/ 04 сентября 2010

Существует ли такая вещь, как шаблон проектирования менеджера, который управляет взаимодействием различных объектов?

Это для проекта, для которого классы Environment, EnvironmentListener и Entity были предварительно определены нашим профессором.

Статический класс, Environment, имеет единственный интерфейс EnvironmentListener, который имеет метод nextAction(), который он просто непрерывно вызывает в игре как основной цикл в игре, и потому что он предназначен для класса шаблонов проектированияЯ не могу просто изменить код.

Мне нужно разрешить перетаскивать, отбрасывать, анимировать и т. Д. Объекты, и я подумал, что я сделаю это, используя разные контроллеры.

Мне было интересно, было ли хорошей идеей создать диспетчер контроллеров, который бы реализовывал EnvironmentListener, и существовал ли подобный шаблон.

Диспетчер контроллеров просто перебирает список контроллеров и использует их функцию вызова.

Ответы [ 3 ]

40 голосов
/ 04 сентября 2010

Звучит так, будто вы следуете шаблону mediator - который можно рассматривать как «менеджера» объектов, с которыми он имеет дело.

12 голосов
/ 18 января 2015

Во многих системах менеджер также является фасадом для подсистемы, и в этом сценарии это скорее шаблон проектирования фасад .

0 голосов
/ 17 октября 2018

Диспетчер данных является реализацией Фасад дизайн пастерна. Он инкапсулирует соединение с базой данных и область транзакции. Он содержит все DAO или Записи (ленивые или не ленивые) всех таблиц, за которые он отвечает, и когда он создает одну, он подключает их к соединению и транзакции. Его можно использовать как singleton , поэтому вы работаете с одним менеджером данных. Диспетчер данных может использовать диспетчер кэша для кэширования данных, которые он извлекает из базы данных, и если тот же запрос является проблемой, он может вернуть результат из кэша.

...