之前有说,看好的编程就去敲好的开源项目;一直觉得这个无从下手,但是这次跟着一点点敲MJExtension,我明白了这句话的深度;其实并不需要去找,每一个三方项目都有很多值得学习的地方;笔记一只记录在敲的过程中对于编程的感悟;整体的MJExtension的架构以及实现其实还并不能完全消化掉;后面会继续消化整理;
1、目前只进行到第一阶段,一些宏和基础的类完成,同时把扩展类的.h文件完成,但目前感受最深的是各个类的划分,基础类就做了些基础的工作,每个类的方法都有明确分工,每个类也都表示尽量单一;分类详细严明,而不是一个文件写下来的方式;
2、对于runtime的应用很灵活而且很随意,并不是为了特定某个重要方法设计的runtime方式,就像调用一个UIButton的addTaget一样的简单随意,可能更多地时候对于runtime的理解偏于浅显,所以忽略了细节的使用;而在敲MJProperty的时候对于这一点的体会尤其深刻;也是另一个学习点,runtime的用法并没有那么高大上,只是由繁入简这个步骤没有达到;
3、对于某一个特性功能的方法,更为细致的考虑是设置多种不同参数情况下的同一功能的实现,考虑在不同情况下的功能实现,OC可以设多个方法,但是Swift我觉得也可以使用默认参数值的方式进行区分,当然这样虽然减少了方法的数量,却同时将代码变得复杂,因为还要区分不同的参数状态;
4、静态方法,即OC中就是宏定义的方法的使用,Swift终究是func开头的静态方法的使用,很大程度上可以便捷操作,这一个的使用在MJExtension中尤为重要;
5、不必想要毕其功于一役,对于某一个内容较多判断层级较多平行的情况较多的方法,可以按层级分多个方法实现,每一个方法中的内容就回相对简单清晰,很多的不同层级的判断也没有必要都集中在同一个方法中做完;