协议的一般使用

作者: 利炳根 | 来源:发表于2015-09-04 03:28 被阅读326次

    多助得道,寡助失道

    昨天的文章《从代码拆分到VIPER架构演化》
    http://www.jianshu.com/p/dee035297274
    讲到,通过把ViewController的事件消息集中由一个协议对象进行分发实现VIPER架构。
    今天,我们来聊聊协议的使用。

    一般而言,做一个新功能,
    最原始愚蠢的做法,是直接在原类方法里改。
    先进一步的,会在原类新建一个方法实现。
    再先进一步的,会在新类里新建一个方法实现。
    再先进一步的,会在符合某个协议的新类里新建一个方法实现。

    采用协议对象来转发消息的好处是,如果需要变了,你只需要换一个符合这个协议的新类,其它代码都不用改。

    所以,为了方便以后代码的维护和扩张,我们会建议尽可能通过协议接口去进行消息转发,而不是直接调类接口。

    像完成这个页面,如果按传统写法,就得创建同时创建非常多的类。


    IMG_4518.PNG

    而如果通过协议接口来进行开发,你只需要新建一个协议,就可以把这个复杂的类写完。通过模拟一些数据,就可以完成对这个类的测试。

    后记(下面以聊家常为主,没时间没兴趣的朋友请直接忽略):

    得道者多助,失道者寡助
    这是很多人都读过的
    大家把重点放在“能否得道”上
    焦点就错了
    应该反过来

    不是“如果你找到了真理,大家都会来帮你;你失去了真理,大家都不帮助你”

    而是
    如果有很多人帮你,你就能找到真理
    如果没人愿意帮你,你就找不到真理

    你能不能成功,能不能把道理想明白,主要是看“有多少人愿意帮你”

    你如果只听一个人的,只信一个人的,就会被误导
    如果你听一万个人的,信一万个人的,就不会被误导
    因为,这里面充满了矛盾冲突
    如果帮助你的人越少,你就越容易被误导
    帮助你的人越多,你就越难被误导
    《中国的秘密》第二集
    http://yuntv.letv.com/bcloud.html?uu=a04808d307&vu=ecf01c6857

    相关文章

      网友评论

      • d2a553cc00c5:VIPER和MVVM有啥本质上的区别?
      • 王谙然:逆向思维,思路一下就开阔了许多。
        我的理解是这样:与其说很多想帮你,不如说很多人想帮他们自己,所以帮助别人成为更好的“他们”,其实就是我在成为更好的“我”,使我们离真理更紧一点。

      本文标题:协议的一般使用

      本文链接:https://www.haomeiwen.com/subject/ipulcttx.html