• 如何优化增强第三方库?


         开发中,我们不可避免要使用,别人花很多时间打磨好的轮子,轮子好用,但有时却无法完全满足我们的要去,这时我们不可避免的要去修改增强一下这个库,如何增强?

        我认为,一般有两种修改的方式:1入侵式修改 2叠加式修改

        1入侵式修改

          如果涉及的地方逻辑较简单清晰,那就直接找到目标处改它,改它的数据,改它的UI。

        2叠加式修改

          如果涉及的地方逻辑较复杂冗长,草蛇灰线,牵一发动全身,那么最好少改原作者的代码,应该根据自己的需求,

          新定义一些数据或UI控件,或新增一些自己的API,视情况而定。

    案例1:修改IQKeyboarManager的完成按钮,将英文Done改成中文

            方式:找到定义该标题的地方,确定它在哪行代码?或者哪个控件的定义处。

            方案1:<1直接搜索Done关键字,但发现搜索出的条目太多,不好找,先不用

            方案2:<1间接搜索其位于同一父控件的上下箭头,发现搜出来的条目只有三个,好!,缩小范围了,

                           确定目标到了某个几文件内

                      <2在那几个文件内,再次搜Done关键字,发现可疑目标控件,就注释,看是否被我消失了

                         旧版本很快找到了,新版本没找到

                      <3然后在一群可疑的doneAction方法内打断点,我点击done按钮,看哪个方法能监听到事件

                         最后定位到一个方法,顺着方法的控件,就找到目标控件了                      

    案例2:修改一个tag选择控制器

           1一开始使用入侵时修改,但逻辑较复杂冗长,没去仔细看,就改为叠加式修改

    案例3:增强MJExtension

          注意点:添加新文件到MJExtension,不仅要添加到该target,也要添加到测试那两个框架,否则会报错。

                      

  • 相关阅读:
    《代码整洁之道》读书笔记六
    第九周总结
    《构建之法》读后感(五)
    学习进度条-第十二周
    3. 统计数字
    《构建之法》读后感(四)
    学习进度条-第十一周
    4. 丑数 II
    《构建之法》读后感(三)
    学习进度条-第十周
  • 原文地址:https://www.cnblogs.com/dzq1991/p/6520611.html
Copyright © 2020-2023  润新知