Я провел некоторые исследования, и мне кажется, что мне нужна единичная или глобальная переменная.
Вам нужно поделиться своими символьными данными между контроллерами представления.Singleton - это один из способов обмена данными;это концептуально довольно просто, но часто приводит к печальным последствиям.См. Что плохого в синглетах? для обсуждения некоторых из этих последствий.См. Альтернативы синглетам для некоторых других подходов.
Если вы делаете решаете использовать синглтон (не рекомендуется), вы должны быть осторожны при выборе роли для этогообъект.Например, вашей первой мыслью может быть создание синглтона, представляющего игрока или персонажа.Однако это будет означать, что в вашей игре может быть только один игрок или персонаж.Лучше было бы создать менеджера игроков, который вы могли бы использовать для доступа к текущему игроку.
Еще лучшим вариантом было бы отказаться от синглтона и присвоить каждому контроллеру свойств player
и gameController
свойства.(Предполагая, что у вас есть какой-то объект, отвечающий за всю игру. Игровой контроллер запускает каждую новую «доску», создавая соответствующий контроллер вида, устанавливая для себя свойство gameController
и устанавливая свойство player
длятекущий объект игрока. Таким образом, контроллеру представления не нужно смотреть вне себя, чтобы узнать об игроке. Когда его часть игры закончена, он может использовать свое свойство gameController
, чтобы отправить сообщение игровому контроллеру.что говорит: «Я закончил, вы можете перейти к следующей доске» или что угодно.