You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NSDocument子类是否属于模型对象?其包含的数据才是模型吗?

NSDocument架构定位答疑

首先给出明确结论:NSDocument本身不属于纯模型层对象,其内部承载的业务数据才是模型。
具体说明如下:

  • NSDocument是苹果设计的文档层协调对象,本身封装了大量非模型逻辑:包括磁盘文件读写、文档生命周期管理、关联窗口控制器、绑定系统撤销栈、响应系统级保存/重命名/复制等操作,不属于仅承载业务数据的纯模型范畴。
  • 你可以把NSDocument理解为模型层的上层容器:它的核心作用之一是持有你的业务模型实例,同时完成业务模型和macOS文档系统之间的桥接工作,比如将磁盘文件反序列化为你的业务模型、将模型变更序列化后写入磁盘。
  • 开发最佳实践:不要将业务数据字段直接定义在NSDocument的子类中,建议单独抽离纯数据结构(如无副作用的struct、纯数据类)作为你的业务模型,仅在NSDocument子类中持有该模型实例,专门处理和系统文档能力相关的桥接逻辑,这种拆分方式可以保证业务模型的通用性,后续做架构调整或者多平台迁移时不需要修改纯业务模型代码。

内容的提问来源于stack exchange,提问作者ATL_DEV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 07:15:03