当我说代表时,您说什么?

如果您使用过TableViewCollectionView ,那么您一定听说过“ 委托 ”一词,或者可能已经实现了它。 但是,代表究竟做什么呢? 你能自己做一个吗? 本文试图过分简化委托人的解释,以便您可以理解并自己编写。

让我们从基于Apple文档的报价开始:

委托是一种简单而强大的模式,其中程序中的一个对象代表另一个对象或与另一个对象协同工作。 委托对象保留对另一个对象(委托人)的引用,并在适当的时候向其发送消息。

我们可以参考的最简单的现实生活委派关系是老板和雇员之间的关系,其中一个代表他人。 让我们用代码描述关系。

让我们创建一个虚构的类Boss ,它具有doSpeech()函数, 该类在被调用时使老板为员工做励志演讲。 然后再假设一个虚构的类Employee ,它具有doApplause()函数, 您猜对了,它使员工给予它可以给予的最热情的掌声。

现在,虚构的时刻到了老板去做doSpeech()的时候了 。 老板为此花了整夜的时间做准备,希望他的员工听完他的话后能更有动力。

片刻之后 ,员工们听到了完美的演讲 。 但是有些事情感觉不对劲, 没有人正确地掌声 。 有些人在演讲过程中鼓掌,有些甚至在演讲开始之前就鼓掌,其他人甚至不知道何时应该鼓掌。 老板在拐角处哭泣,知道他的员工没有能力给他“正确”的掌声。

老板不告诉员工什么时候鼓掌

谁该怪? 员工呢 当然不是! 让我们像往常一样责怪系统!

只是开个玩笑 〜老板要怪,因为他从不告诉员工正确的doApplause()时间。 当然,只要老板要求他们掌声,告诉员工doApplause()即可解决此问题。

老板告诉员工何时是应该鼓掌的时候

经过适当的培训后,老板现在很高兴员工知道何时鼓掌。 是的! 任务完成! 但是,尽管我们根本没有提到协议 ,但是对这样的标题颇为讽刺,不是吗?

现在让我们谈谈。 让我们给老板另一个问题,如果老板在员工热烈掌声之后想要doFollowUpSpeech()怎么办? 老板不知道掌声何时结束,他永远也不想错过正确的时机来跟进演讲!

也许员工应该广播通知,将其放在NSNotificationCenter上,然后让老板听,以便他知道进行后续演讲的正确时间。 但是知道老板是一个非常感性的人,他不希望其他人知道掌声的确切计时,他不希望其他人冒出来,接管舞台,并提供更好的跟进讲话。 真麻烦!

老板几乎不知道,员工有一个秘密协议,只有获得信任的人,可以代表他们的人,可以委派他们的人才能知道! (我知道这有点强迫)

员工对获得信任的人有一个秘密协议

更好的是, 无论谁实现此协议 ,例如: 经理,医生,保管人,旁观者,总裁以及赢得员工信任的人都可以准确地知道掌声何时结束! 别再尴尬地跟进演讲了! 是的

现在,老板所要做的就是赢得他们的信任,了解他们的协议,实施协议,然后老板可以从此快乐地享受带薪休假。 精神! 你希望老板! 您现在必须为投资者做一些演讲!

老板现在是员工的代表,大家都高兴!