对象图(Object Graphs)
面向对象的应用会包含一个对象相互关联的复杂网络. 对象通过拥有另一个对象, 或者包含另一个对象, 或者对其发消息时强引用, 而彼此相互链接, 形成一个网, 这个对象网络就称为对象图
.
即使对象很少, 应用程序的对象图
仍然会有很复杂的环形引用,还有对各独立对象的链接, 如下图所示:

图中只显示了一个简单Cocoa
应用的不完整的对象图
(实际会比上图有更多的对象连接).从图中可以看到各种引用关系:
- 视图层级的引用关系:
window -> Content View -> Subview[Button, Text]
之间的父子关系. - 视图之间的引用关系:
Text <-> Text
, 会因响应链以next responder
相互引用, 以便实现键盘焦点切换. -
target-action
的引用关系:Button
的事件处理, 会让Button
链接到其他对象 - ......等等,还有很多
有些情况下, 你可能需要将对象图
(通常只是应用程序中完整对象图
的一部分)转换为可以保存到文件或传输到另一个进程或计算机, 然后重建的形式..
Nib
文件和属性列表
就是OS X
中对象图
保存为文件的2个例子.Nib
文件是对UI
之间复杂关系的归档, 如window
的视图层级.属性列表
是对基本数据类型层级关系的序列化.
对象图
的概念主要用于归档
和序列化
中.
参考文档:
网友评论