33、深入解析MVC模式:从响应链到数据模型与控制器

深入解析MVC模式:从响应链到数据模型与控制器

1. 响应链设计

响应链除了常见用途外,还用于翻译错误对象以及确定可用服务。在设计Cocoa应用程序时,响应链会深刻影响功能的实现方式和位置,以下是一些设计准则:
- 当菜单命令适用时,在响应链中的对象里实现菜单项操作;不适用时,则不在链中实现。
- 一般来说,操作应在涵盖操作领域的根对象中实现:
- 读写文档的命令应在文档对象中实现,而非窗口。
- 更改数据模型状态的操作应在控制器或数据模型对象中实现,而非视图。
- 视图应直接实现编辑操作,但最终更改应作为离散操作发送给控制器或数据模型。
- 即使在层次结构中逻辑正确的对象里实现目标操作会重复其他地方的功能,且只是向另一个对象发送单个消息,也应这样做,因为这比对抗响应链的组织方式更容易。

2. 数据模型

数据模型本质上是保存应用程序数据的任何对象。Cocoa应用程序中有四种常见的数据模型对象:传统表格和树数据源、集合控制器、Core Data对象和自定义类。

2.1 传统表格和树模型

Cocoa提供了将对象集合显示为表格和树的视图,这些视图可以与传统数据模型提供者交互,或绑定到NSObjectController对象。以下是Swing和Cocoa的等效视图和数据源类对比:
| Swing | Cocoa |
| — | — |
| javax.swing.JTable | NSTableView |
| javax.swing.table.TableModel | NSTableDataSource |
| javax.sw

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值