我想弄清楚为什么我应该学习代表和协议的这些事情的原因。首先,我认为有必要为了创建漂亮的代码设计。然后我开始阅读,但我无法真正找到我虽然我会找到的原因(也就是说,“好”的原因......)。应用委托和协议
我应该何时应用代表和协议?实际的现实生活,或者只是一般的好的例子将是有用的(我知道协议和代表的特征,至少在某种程度上,所以不需要解释)。
在此先感谢!
我想弄清楚为什么我应该学习代表和协议的这些事情的原因。首先,我认为有必要为了创建漂亮的代码设计。然后我开始阅读,但我无法真正找到我虽然我会找到的原因(也就是说,“好”的原因......)。应用委托和协议
我应该何时应用代表和协议?实际的现实生活,或者只是一般的好的例子将是有用的(我知道协议和代表的特征,至少在某种程度上,所以不需要解释)。
在此先感谢!
协议的用法是为委托人指定接口。
委托用于实现其他语言名称回调。
一些最好的例子可以在Cocoa框架中找到。
NSTableView
委托是一个很好的例子。该委托允许视图高度自定义,而不需要对其进行子类化,但委托所提供的所有定制都是可选的。如果这种定制是通过子类实现的,那么视图就必须意识到模型的细节,这会破坏MVC模式。
苹果文档是一个良好的阅读:Cocoa Design Patterns: Delegation
我近来看到另一个很好的资源是通过iTunesU(http://itunes.stanford.edu/)提供的斯坦福大学iPhone应用程序开发过程是免费的。在第7讲中,他们讨论了编写视图控制器的一些最佳实践,并介绍了委托和协议的概念。
当一个班级需要告诉另一个班级发生某些事情时,他们很棒,应该做些什么。
它们有助于节省子类化时间,同时还允许定制其他类。
但是,通过创建与其他对象关联的属性可以轻松实现,不是吗?与此相比,有什么好处? – Nicsoft 2010-03-11 16:26:16
确实,另一个类可以访问属性的值,但是没有办法让属性通知另一个类其值已更改或发生了其他某个事件。 – blindjesse 2010-03-11 16:29:51
你可以举一些很好的例子吗? – Nicsoft 2010-03-14 15:19:54