繁体   English   中英

是否基于文档的应用程序?

[英]Document-based application, or not?

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

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

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

另一方面,我看到的基于NSDocument的示例给我带来了很多好处(老实说,我在网络上看到的大多数示例似乎都是基于文档的)。 如果我走这条路,我很好奇我是为每个基本实体定义一个文档类型,还是为一个控制文档定义一个文档类型。

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

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

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

如果您发现使用基于NSDocument的好处,那就去吧。 我之所以这样说是因为,如果有大量的文字写作/阅读,那么它应该是一个不错的选择。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM