我一直在努力真正了解代表,但我仍然坚持使用它们的目的/理由。我理解如何实现它们,使用它们等等,但在我看来,分配self.delegate = someObject
只是使用someObject
的语法糖
例如,我可以使用委托方法并执行以下操作:
self.delegate = someObject;
// Maybe we do some additional stuff here
[self.delegate doSomething];
但我也不能这样做:
[someObject doSomething]
我知道委托很好,因为它可以让你在不同类的对象之间进行通信。我想我的问题是我不明白为什么没有委托就不能这样做,而不是将整个类暴露给各自的对象。我的猜测是我在这里忽略了与OOP概念有关的事情。这是干的吗?
答案 0 :(得分:3)
代表用于将责任委托给其他人(其他一些班级)。例如,公司的首席执行官对法律了解不多,所以他聘请律师并在他遇到任何法律问题时询问他(他的代表)。在这种情况下,CEO专注于领导公司,律师专注于法律。
这不是干,而是单一责任原则。 http://en.wikipedia.org/wiki/Single_responsibility_principle
答案 1 :(得分:0)
原则上,代表团就像回调'模式(在C#中)。使用委派有很多理由。首先是将工作委托给另一个对象,以便在应用程序中的对象之间进行通信。此外,对于iOS,委托模式还用于简化应用程序的comportements和UI的自定义(tableview,nsurlconnection,...)。