block、delegate、notification的区别
Block
特点
Block是带有上下文和捕获的闭包。
使用Block可以让代码更简洁,尤其适用于异步操作和回调。
可以内联定义,使用起来非常灵活。
适用场景
适用于异步操作完成后的回调。
如网络请求、动画完成等。
适用于需要在同一作用域内完成的短期任务。
Delegate
特点
Delegate模式使用协议来定义一组方法,由代理对象实现这些方法。
可以实现很好的解耦,将实现细节委托给其他对象。
一个对象通常只会有一个delegate,可以确保职责单一。
适用场景
适用于需要长期存在的关系,如UITableView、UICollectionView的数据源和委托。
适用于需要多个方法进行复杂交互的场景。
Notification
特点
Notification是一种广播机制,可以让多个对象监听同一个事件。
通知发布者和监听者之间没有直接的依赖关系,非常松耦合。
通知是全局的,任何对象都可以发送和接收。
适用场景
适用于应用中的全局事件,如用户登录、注销等。
适用于需要多个对象响应同一事件的情况。
Block:适用于简洁、短期的回调和异步任务。
Delegate:适用于长期存在的关系和复杂交互。
Notification:适用于全局事件和多对象通信。
本文是原创文章,完整转载请注明来自 MrXiao's Blog
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果