我最近终于悟到了函数式编程跟class的精髓,原来函数式编程跟class(也就是所谓的面向对象)是完全不冲突的,而且class现在的面向对象主流的思想用法已经到了扭曲的地步。例如,面向对象,很多人会这样解释,一个人是一个对象,他有说话,跑步的功能。翻译成代码就是这样的表达。
其实这是一种相当肤浅的表达。真正更加具体的表达是下面这样,
,看到了吗?说话这个功能其实是要由很多小功能组成的。很多人写代码以为,class里的function不能再有function,所以你会发现他们class的function一堆变量,复杂难懂。完全是因为第一张图所谓面向对象这种误导。所以我才说现在面向对象扭曲。