使用场景: 代理->上下级、一对一 Block->上下级、一对一 通知->跨级、一对多 Block与代理的替换一般只有一个代理方法时,可以使用Block替换,但是代理方法有多个时,使用代理结构更清晰,更好管理