如何防止回调深渊

所谓不破不立,不做些改进,过了一年,两年,任然恍如隔天,在此启发下,还是学习一些新知识,改进一下项目里的历史bug

其实,适量的回调是可以优化代码的,想想初始写项目的时候,更加喜欢用代码delegate的模式,几乎不用考虑什么循环应用,但是代码确实很多。用block代码简洁了不少,基本上block是一种趋势吧,作为码农,顺应时代潮流,也是一种学习方法吧。
关于block、代理,kvo三种方式的优缺点总是在面试中会有提问,在这里就不赘诉了,大部分情况下是可以通用的,没必要真过多追究

什么是block

用block可以很大程度上的使代码更加聚集在一起,功能都在一起,所以不需要因为查找某个方法在那里而进入方法里面进行查看,是一种简化代码的方式.(大部分情况下是这样的)

  1. 首先block的定义很简单typedef <#returnType#①>(^<#name#>②)(<#arguments#>③),其中①是block的返回值类型,②是block的名字,三是block的回调参数,一开始可能会不理解返回值和回调参数,会混淆,笔者也是当初混淆了,但是还是比较好理解的.一个最好的理解就是block的回调参数就是给调用者用;返回值是给被调用者用的,即创建这个block的类用的.其实在一些类型中使用回调参数可以替换基本方法的返回值,也是需要考虑的,这也是设计一些工具类的方法之一

提出业务需求

设想一个基本的业务需求,一个认证模块,认证的模式是调用一个网络接口就可上网了,通过有一系列的操作,如上线第三方聊天,刷新主页面,一个弹窗,等等,有些更者是要通过上一个网络接口的值后再进行一个网络请求,同时还要判断某个状态进行其他的操作.一开始觉得很简单,不就是一个再每个回调上进行下一个业务需求么.prosmise kit

你可能感兴趣的:(如何防止回调深渊)