协议的一般使用

多助得道,寡助失道

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

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

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

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

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


协议的一般使用_第1张图片
IMG_4518.PNG

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

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

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

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

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

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

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

你可能感兴趣的:(协议的一般使用)