區(qū)別一:
delegate
:
針對one-to-one(一對一)關(guān)系癣亚,并且接收者(receiver)可以返回值給發(fā)送者(sender)剩拢;
Notification
:
可以針對one-to-one/many/none,reciever無法返回值給發(fā)送者(sender)净当;
所以滚婉,delegate
用于發(fā)送者(sender)希望接受到接收者(receiver)的某個(gè)功能反饋值杯瞻,Notification
用于通知多個(gè)object
某個(gè)事件扭吁。
區(qū)別二:
delegate
:
消息的發(fā)送者(sender)告知接收者(receiver)某個(gè)事件將要發(fā)生球碉,delegate同意然后發(fā)送者響應(yīng)事件蜓斧,delegate
機(jī)制使得接收者可以改變發(fā)送者的行為。通常發(fā)送者和接收者的關(guān)系是直接的一對多的關(guān)系睁冬】娲海
Notification
:
消息的發(fā)送者告知接收者事件已經(jīng)發(fā)生或者將要發(fā)送,僅此而已豆拨,接收者并不能反過來影響發(fā)送者的行為直奋。通常發(fā)送者和接收者的關(guān)系是間接的多對多關(guān)系。
區(qū)別三:
效率肯定是delegate
比Notification
高施禾。
區(qū)別四:
delegate
方法比Notification
更加直接脚线,最典型的特征是,delegate方法往往需要關(guān)注返回值弥搞,也就是delegate方法的結(jié)果邮绿。
delegate
用于聲明委托攀例。Notification
用于通告船逮。
委托是一種引用類型,引用類型的 Shared 方法或?qū)ο蟮膶?shí)例方法粤铭。任何具有匹配參數(shù)類型和返回類型的過程均可用來創(chuàng)建此委托類的實(shí)例挖胃。然后就可以通過委托實(shí)例來調(diào)用過程。
GitHub: https://github.com/LiCheng244/LCUtils
個(gè)人博客: http://www.licheng244.com/