iOS - Хорошие практики при разработке приложения для iOS? - PullRequest
0 голосов
/ 05 ноября 2011

Допустим, вы разрабатываете приложение для ipad, и на 1 странице вы хотите отобразить разные данные.В нижней части страницы вы хотите отобразить некоторую информацию, которую вы хотите сохранить отдельно от остальной части страницы?

Вопросы:

  • Вы бы использовали UIViewController или подкласс?UIView для этой части страницы?
  • Плохо ли иметь слишком много логики в UIView?

Я задаю этот вопрос, потому что столкнулся с большим количествомпроблемы при модульном тестировании моего кода.UIViewController легко тестируется, поскольку он не требует загрузки UIView, но UIView не тестируется, если он не полностью загружен (в моем случае загружен из файла пера)

1 Ответ

2 голосов
/ 05 ноября 2011

Вот мои два цента

1) Во-первых, я бы попробовал использовать один из этих модных контроллеров для iPad (в частности, контроллер с разделенным видом). В качестве альтернативы я бы использовал пользовательский UIViewController с отдельными представлениями для двух разделов, которые вы хотите.

2) О, чувак, это огромный вопрос: плохая практика - иметь слишком много логики в UIView? Вы должны всегда использовать объектно-ориентированный осторожно; разделите ваш дизайн на классы и правильно используйте наследование / композицию, чтобы избежать неуправляемого кода. Не забывайте, что яблоко любезно помогает вам сделать это, будучи дружелюбным к MVC.

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

Во-вторых, это нормально, если ваши взгляды будут сложными, если они имеют конкретную цель. UITableView от Apple - пример очень сложного представления, но его использование относительно простое, потому что оно (на мой взгляд) спроектировано правильно. Обратите внимание, что табличное представление не хранит никаких данных ... оно получает все из источника данных. Кроме того, его целью является отображение данных в ячейках. Если вы подражаете этим хорошим практикам, сложными представлениями все еще можно управлять.

Наконец, если вы решили сделать сложное представление, используйте композицию в свою пользу. Я мог бы продолжать и продолжать, но короткая версия такова, что большим количеством логики легче управлять, если вы используете oop в своих интересах и сохраняете свой код организованным.

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