2009-09-13 13 views
5

Hat jemand irgendwelche NSDocument Pros und Contras, die sie teilen möchten?NSDocument Architektur Vor- und Nachteile

Insbesondere:

  • Sobald Sie auf der NSDocument Architektur abhängen, ist es schwierig, es zu Refactoring, wenn Sie brauchen?

  • Gibt es Auswirkungen auf die Leistung?

  • Schränkt es Sie auf bestimmte/viele Arten ein?

Antwort

17

(1) Sobald Sie NSDocument gehen, ist es schwer, zurückzugehen. Das liegt daran, dass die NSDocument-Architektur einen großen Teil des Schwertransports für Sie erledigt. Es schafft die Grundlage für eine ordnungsgemäß funktionierende, auf mehreren Dokumenten basierende Cocoa-Anwendung. Sie können dieses Rad neu erfinden, wenn Sie wollen, aber es wird eine Menge Arbeit sein, nur um Parität zu erreichen.

(2) Nein; Natürlich verbraucht die Dokumentarchitektur einige Zyklen, um den Zustand zu erhalten, usw. Aber Sie müssten ziemlich genau dasselbe tun, wenn Sie versuchen würden, Ihr eigenes zu rollen. Und die Leute im AppKit-Team, die die Dokumentenarchitektur pflegen, tun dies, weil es ihre Aufgabe ist - Ihre Aufgabe ist es, Produkte so schnell und so gut wie möglich an Kunden zu liefern. Wenn Sie das Erstellen einer Dokumentarchitektur als Teil des Erfüllens dieses Ziels rechtfertigen können, gehen Sie dafür vor. Wenn nicht, und Sie einen brauchen, verwenden Sie den, den Sie erhalten.

(3) Sie können nur eine dokumentenbasierte Anwendung erstellen. :)

Im Ernst, wenn Sie eine dokumentbasierte Anwendung benötigen, gehen Sie mit NSDocument. Wenn nicht, nicht.

Ich schrieb vor kurzem eine Datenverarbeitungsanwendung, bei der alle Daten pro Dokument aus verschiedenen textbasierten Dateien importiert werden. Ich habe nicht wirklich die Notwendigkeit, die Daten zwischen den Sitzungen persistieren - es ist auf der schönen Liste zu haben - aber ich ging immer noch mit NSDocument. Das hat mir eine Menge Zeit gespart.

+1

Große Liste der Antworten. Nur um es hinzuzufügen, gibt es auch sehr gute UI-Gründe, um mit der NSDocument-Architektur zu gehen; Es bietet eine Vielzahl von subtilen Verhaltensweisen, die für Ihre Benutzer großartig sind und beim ersten Entwurf der App leicht übersehen werden. –

Verwandte Themen