Какао сенсорный связи и шаблон дизайна данных - PullRequest
1 голос
/ 01 августа 2010

Мой вопрос - проблема дизайна, и он сводил с ума последние пару дней.Я новичок в разработке касания какао.

У меня есть приложение, которое имеет контроллер UINavigarion и 3 вида.Мне нужно поддерживать связь с сервисом WCF и хранить данные на стороне приложения.

Как мне создать мою модель (MVC) таким образом, чтобы данные были доступны для всех контроллеров?

Я начал синглтон, который обрабатывает все хранилища и веб-вызовы, кромеПрочитайте по темам, что это плохая идея.Я также подумал о том, чтобы поместить код в appDelegate, но люди говорят, что это тоже плохая идея.

Концептуально, как бы вы спроектировали вашу модель и общались с контроллерами?

Любая помощь очень ценится.

1 Ответ

2 голосов
/ 01 августа 2010

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

Внедрение зависимостей основано на передаче объекта модели данных из контроллера представления в просмотр контроллера по мере необходимости. Маркус Зарра (автор Core Data: API Apple для хранения данных в Mac OS X , который я рекомендую) написал хорошую статью, объясняющую внедрение зависимостей . Большая часть документации Apple рекомендует использовать конструкцию Dependency Injection.

Мне нравится паттерн Синглтон, но он очень, очень, очень опасен для новичка в использовании. Паттерн «Синглтон» настолько легко сделать неправильно, что большинство серых бород отказались от него и просто советуют новичкам никогда его не использовать.

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

Для простого приложения с тремя иерархическими представлениями Dependency Injection является самым простым и чистым проектом для реализации. Вам не понадобится гибкость синглтона, а синглтон просто добавит ненужную сложность. Шаблон на основе навигации с основными данными, предоставленными XCode, даст вам 50% запуска приложения. Просто добавьте представления второго и третьего уровня, и все готово.

...