说起面向对象可能大部分人就会很熟悉的说出,封装继承多态,可是这具体与面向过程有什么区别呢?这几天的在做题的时候,老大叫我用面向对象来写算法,这确实令我头疼了一阵,不过解决它也弥补了一些不足,接下来说说我对这两个的理解。
知乎上对这两个做了很好的解释,前者是纪传体,后者则是编年体,这是我见到的最简短也最棒的答案了,面向对象的话我们只要知道在程序中对象是如何行动的,最后从对象中获得结果就行了,而面向过程需要对数据进行逐条的分析,来一步一步的计算,比如1+1=2这个问题如果用面向过程的话,首先我要拿出一个一,然后让这个一加一个数,加什么呢,再加一个一,最后我们运算完毕得到了一个二,再把二输出,而面向对象呢,我们不需要知道对这两个一进行了什么,只需要把这两个数字放入到对象里,然后经过函数的加工,就可以得到一个二了。
可能面向对象听起来不是很cool,相信炉石的设计人员一定不会用的,但是这对写程序很有好处,譬如说要是一些很长的数字经过很多繁琐的步骤,那么对对象操作起来就不需要一步步向下去看了,只需自动生产出结果就好了。当然这也不是说面向过程不好,再日常的编程或者写算法的时候,这更好理解也更好修改错误,编程当然应该选择合适的方式