У меня есть проблемы с поиском подходящих шаблонов для того, что я хочу делать.Шаблон стратегии, который обращается к членам пользователя
У меня есть блочная игра с двумя игровыми режимами. В одном режиме любые удаленные блоки заменяются новыми блоками, выпавшими из верхней части экрана. В другом режиме удаленные блоки заменяются полной новой строкой блоков, поднимающейся снизу и выдвигающей все поле вверх. Поэтому я подумал, что лучше использовать шаблон стратегии для его реализации.
Теперь проблема заключается в том, что этой Стратегии потребуется изменить доступ ко всем позициям существующих блоков в игровом поле, но очевидно, что информация находится в пользовательском классе Стратегии (класс игры), и я не могу иметь круговой зависимостей.
Я могу передать все поле в качестве ссылки, но у меня есть дополнительная проблема, заключающаяся в том, что весь код генерации блоков лежит в классе Game (как и должно быть на мой взгляд). Поэтому единственное, что приходит на ум, - это передать все эти методы как ссылки на функции, но для меня это кажется излишним.
Итак, любой способ разрешить это? Возможно, я ошибаюсь, желая использовать шаблон стратегии. Помощь очень ценится.
Бонусные баллы за любые рекомендации относительно использования двух объектов Strategy Pattern в классе, которым необходим доступ к тем же методам, которые зависят от членов в пользовательском классе.
Я кодирования в Java, если это помощь
Развязка - это всегда хороший момент для начала. Что относительно интерфейсов/слушателей? Я сталкиваюсь с некоторыми проблемами с моим римейком Bomberman. Постарайтесь, чтобы программа была абстрактной, насколько это возможно, - это заставило меня много времени. –
Прежде всего, вы не можете передать «ссылку на функцию» в Java, вам придется сделать какой-то объект функции для обхода этого. Другой шаблон, который вы можете использовать, - это шаблон. В любом случае, я не вижу трудности с передачей ссылок на другой объект, который он должен использовать. –