代理,Block利弊比较

2021-03-02  本文已影响0人  牛奶红茶

代理优点

-代理语法清晰,可读性高,易于维护

-它减少代码耦合性,使事件监听与事件处理分离

-一个控制器可以实现多个代理,满足自定义开发需求,灵活性较高

代理缺点:

-实现代理的过程较繁琐

-跨层传值时加大代码的耦合性,并且程序的层次结构也变得混乱

-当多个对象同时传值时不易区分,导致代理易用性大大降低

block优点:

-语法简洁,代码可读性和维护性较高

-配合GCD优秀的解决多线程问题

block缺点:

-Block中得代码将自动进行一次retain操作,容易造成内存泄漏

-Block内默认引用为强引用,容易造成循环应用

运行成本:

delegate运行成本低,block的运行成本高

-block出栈需要将使用的数据从栈内存拷贝到堆内存,当然对象的话就是假引用技术,使用完block置nil才会消除

-delegate只是保存了一个对象的指针,直接回调,没有额外的消耗。就像c的函数指针,只多了一个查表动作

上一篇 下一篇

猜你喜欢

热点阅读