Несколько ViewControllers - я должен использовать одноэлементный объект? - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть новый проект, своего рода настольная игра, и я использую раскадровку, в которой есть несколько контроллеров представлений - игра просто перемещается из одного вида в другой, когда игрок принимает различные решения, а затем возвращается назад. .

У меня есть объект, который содержит информацию об игроке (вместе с несколькими методами) - счет и т. Д. Мне, очевидно, нужен только один экземпляр этого объекта, и, поскольку я хочу, чтобы каждый View Controller имел доступ к одному и тому же экземпляру, если он быть одиноким? Я никогда не использовал их раньше, и я читал, что они часто используются слишком часто, поэтому я просто хочу проверить, является ли это правильным способом сделать это с самого начала. Большое спасибо.

Ответы [ 3 ]

1 голос
/ 02 ноября 2011

То, что вы описали, - это модель вашего приложения, содержащая игровые данные и основную логику.Есть ли причина, чтобы сделать это синглтоном, а не передавать его между контроллерами ?!

Я предполагаю, что один контроллер вызывает следующий, и поэтому может передавать эту информацию ?!Мы используем синглтоны для сервисов и тому подобного, но не для данных моделей, в нашем опыте это не совсем так.

1 голос
/ 02 ноября 2011

Лично я ничего не имею против синглетонов, если вы не используете их слишком много в одном проекте.В то время как другие люди могут порекомендовать вам использовать какое-то другое посредничество для этого проекта, я говорю, что сделайте это - именно для этого вы бы использовали синглтон.

0 голосов
/ 02 ноября 2011

Singleton'ы могут быть плохими, если вы разрабатываете компонент библиотеки, большой серверный проект или для модульного тестирования. Но так как вы играете в iphone, не переживайте, просто будет проще и быстрее использовать синглтон.

Если вы беспокоитесь о модульном тестировании, поскольку objetive-c имеет позднюю привязку и синглтоны создаются с помощью фабричных методов, а не конструкторов, в любом случае несложно заменить синглтон для вашего модульного теста.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...