Сколько классов контроллеров типично в приложении какао? - PullRequest
3 голосов
/ 24 октября 2009

При разработке приложения сколько у меня должно быть контроллеров? Является ли хорошей практикой иметь один контроллер для всего приложения, всего окна или для каждого класса? Кроме того, сколько объектов для многих создано в окне документа в Интерфейсном Разработчике. Учебники, как правило, имеют один, называемый AppController. Полные приложения обычно имеют App Controller или n * XYZController?

Ответы [ 2 ]

4 голосов
/ 24 октября 2009

В приложении без документов по одному на окно. Я говорю только о контроллерах, которые вы пишете сами, а не о контроллерах окон, контроллерах представления, контроллерах объектов, контроллерах массивов, контроллерах дерева или контроллерах словарей. (Обратите внимание, что некоторые люди делают свой пользовательский контроллер NSWindowController.) Я также не считаю делегата приложения, которому принадлежат ваши корневые контроллеры.

В приложении с одним окном это обычно означает один пользовательский контроллер.

В приложении на основе документов вы вообще не пишете контроллеры вообще, а вместо этого пишете один или несколько подклассов NSDocument - по одному для каждого типа документа. Каждый объект документа обычно принадлежит только одному окну.

Независимо от того, какое приложение вы пишете, вы также можете создавать контроллеры для любых имеющихся у вас плавающих служебных панелей (например, Inspector), хотя вам следует рассмотреть альтернативный вариант: сделать панель собственным контроллером. , как NSFontPanel и NSColorPanel.

1 голос
/ 24 октября 2009

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

Но, и это крайне важно, вы должны иметь возможность придумать хорошее имя для вашего контроллера: importController, или textFilesImportController или externalFilesDisplayController - это имена, которые дают понять, что будет делать конкретный контроллер не делай.

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

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