Сенсорное соединение какао и шаблон разработки данных

Моим вопросом являются вопросы проектирования, и он сводил с ума за последние несколько дней. Я плохо знаком с сенсорной разработкой какао.

У меня есть приложение, которое имеет контроллер UINavigarion и 3 представления. Я должен сохранить, общаются с сервисом WCF и хранят данные на стороне приложения.

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

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

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

Любая справка очень ценится.

1
задан TechZen 1 August 2010 в 12:29
поделиться

1 ответ

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

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

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

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

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

2
ответ дан 2 September 2019 в 22:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: