4

我正在编写一个可用于管理舞蹈学院的桌面应用程序。我的核心数据模型包含诸如学生、教师、班级、发票等实体以及它们之间的各种关系。

我计划的 UI 包含一个垂直拆分视图,左侧有一个类似 iTunes 的 OutlineView。当您单击该大纲视图中的“学生”项目时,右侧面板的内容将从 ManageStudents NIB 中交换进来。同样,如果您单击大纲视图中的“发票”项,当前视图将被 ViewInvoices 视图替换。相当简单,是吗?

我的大难题是是否要基于文档?我所有的阅读都表明,如果用户一次打开多个实体实例,那将是一个不错的选择。这里不是这种情况——在任何时间点都只会打开一个主窗口的实例。

另一方面,我可以从我看到的基于 NSDocument 的示例中看到很多好处(老实说,我在网络上看到的大多数示例似乎都是基于文档的)。如果我要走这条路,我很好奇我是否会为我的每个基本实体定义一个文档类型,或者只为一个控制文档定义一个文档类型。

任何指导将不胜感激。或者,指向某个地方的指针,该指针在 NSDocument 何时适合/不适合时提供具体建议(Apple 的“基于文档的应用程序概述”有用地建议“文字处理器和电子表格应用程序是基于文档的应用程序的两个示例” - 我希望对于其他实际应用程序更有洞察力和相关性的东西)

4

2 回答 2

2

想想你的问题域。什么是“文档”模型?舞蹈学院?如果是这样,并且您认为您的用户只会管理一个学院,那么基于文档的模型就没有必要了。另一方面,如果您认为一个文档代表一位老师,那么很可能一个学院经理会想要与多个老师打交道,因此文档模型看起来很合适。

关键问题之一是独立性。如果应用程序模型中的所有对象都是相关的,则无需管理独立文档。另一方面,如果有一个松散的对象集合,每个对象都有自己的一组相关“孩子”,那么这似乎是一个文档集合。这就是文字处理器基于文档的原因:一个文件中的文本、属性和图像与另一个文件中的内容无关,因此将它们视为独立文档是有意义的。

于 2010-11-09T13:41:21.023 回答
0

如果你看到基于 NSDocument 的好处,那就去吧。我之所以这么说是因为如果有很多文本写作/阅读,那么它应该是一个不错的选择。

于 2010-11-09T12:15:13.987 回答