信仰万物皆对象,习惯性Thinking in OOP的话,有可能会限制住自己解决实际问题的思路。
曾经面试过某java候选人,我出了道其实很简单的算法题。
结果候选人上来就去定义对象、属性、方法、接口等等,企图去搭一个面向对象的『框架』来解决问题。
折腾这些『面向对象』的套路耗费了他不少时间,而解决问题的核心算法倒是没能写出几行代码。
我只好不断的提示。
然后他就不断发现『框架』这里不对那里不妥,不断的砍砍砍,改改改,最后实现我题目的时候,大概就砍剩一个十几行的函数。
他自己都叹气了,说道,汗,原来这么简单。
类似他这样的面试者其实不少,他们思维方式的局限,使我深深的感受到了面向对象编程的弊端。
『面向对象』,是一种思维方式,一种套路而已;当开发者的脑海被这种套路给侵占之后,他们会不自觉的把简单问题给复杂化,而且他们还很难自觉其复杂性,即便发现了,也可能会误以为那是自己技术牛逼的体现。
但其实,这个世界,还可以有别的思路,别的套路;有时,完全可以更简单的工程实现方案!
当『万物皆对象』成为信仰的时候,工程师的思维也就有了桎梏。