代理模式

来源:互联网 发布:js注释规范 编辑:程序博客网 时间:2024/06/12 23:20


代理是一种程序设计模式,表示一个对象给其他对象充当协同或者代理作用。


代理对象会保存对与被代表的对象一份引用,在适当的时候会临幸它。



代理和Cocoa框架


代理类和被代理对象保持weak reference(很重要,是weak reference,涉及到内存溢出). 在垃圾回收环境下,可以用strong reference.


比如, NSWindow class有一个方法叫windowShouldClose: 当用户点close window的时候, NSWindow把信息发送给windowDelegate去处理


Framework object sending a message to its delegate


代理和通知


Cocoa框架的代理类会已观察者身份自动注册, 代理者只需要实现框架提供的notification方法。

比如:

窗口关闭时,NSWindowWillCloseNotification会发送给观察者,而windowShouldClose会发送给delegate。


Data Source


data source和delegate称兄道弟,delegate控制UI表现,data source控制data。

通常view会引用到这些data source,同时data sources会负责管理他们的内存。











0 0
原创粉丝点击