2009-09-13 2 views
5

Есть ли у кого-нибудь какие-либо плюсы и минусы NSDocument, которые они хотели бы поделиться?Архитектура NSDocument за и против

В частности:

  • После того, как вы в зависимости от архитектуры NSDocument, сложно реорганизовать его, если вам нужно?

  • Есть ли последствия для работы?

  • Он ограничивает вас определенными/многими способами?

ответ

17

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

(2) Нет; конечно, архитектура документа потребляет несколько циклов при сохранении состояния и т. д. Но вам бы очень пришлось делать то же самое, если бы вы пытались опрокинуть свои собственные. И люди в команде AppKit, которые поддерживают архитектуру документа, делают это потому, что это их работа - ваша задача - отправлять продукты клиентам как можно быстрее и лучше. Если вы можете обосновать построение архитектуры документа как части достижения этой цели, пойдите для этого. Если нет, и вам нужно, повторите использование того, которое вам дано.

(3) Это ограничивает создание приложения приложения на основе документов. :)

Серьезно, если вам требуется приложение на основе документов, перейдите к NSDocument. Если вы этого не сделаете, не делайте этого.

Недавно я написал приложение обработки данных, в котором все данные для каждого документа импортированы из различных текстовых файлов. Мне действительно не нужно сохранять данные между сеансами - это хорошо, если у вас есть список, но я все равно пошел с NSDocument. Это сэкономило мне огромное количество времени.

+1

Отличный список ответов. Чтобы добавить к этому, есть также очень хорошие пользовательские интерфейсы, чтобы пойти с архитектурой NSDocument; он обеспечивает множество тонких поведений, которые отлично подходят для ваших пользователей и легко пропущены при первом проектировании приложения. –