此篇博客是为了记录自己的理解,有不当之处指出,大家一起改正。
我们将二者都看为一个工具包的话,那么面向过程则是一个万能工具,就是那种当年很流行的在一个载体中,集合装载了多种工具,包括小刀,螺丝刀,起瓶器等多种。当我们用面向过程思想开发时,对于一个类,每当有新的需求加入,我们则对该类进行不断的更新、调通测试。该”工具”功能越齐全,也越沉重,代码量就越多。但很多工具只有在固定的场景中发挥作用,那么该工具就会显得臃肿且不实用。并且有可能其中一个工具无法拔出使用,连带其它甚至整个工具无法工作。面向过程在需求不断更新的开发任务中,性能会比较底下。
面向对象则可以看作一个从仓库中取出的工具箱,对于每次服务的不同对象,里面装的基础工具相同,但会有不同的定向服务工具,比如长度不一的卷尺,粗糙度不同的砂纸等等。当当前情况下需要某种工具,我们在基础工具的基础上添加;不需要的时候,直接去掉即可。同理,在开发中,对于不同情况下的需求,我们可以在原有类的基础上扩展,不需要时,将扩展的类删除,不影响原类(即父类)的使用。