小编计算机系大学生一枚,自学Java后,根据面向对象与面向过程有些感触总结如下。(本文只适合小白阅读,大佬勿喷,如有不妥的地方,请联系博主修改,欢迎大家斧正!)
【面向过程】
顾名思义,面向过程它是站在过程角度思考问题,强调的是功能行为,功能的执行过程,即先干啥后干啥,而每一个过程每一个步骤都需要我们使用函数(学习过C语言的同学应该知道)去实现。没看懂,没关系,看下面的例子:
有一天你根据面向过程建立了一个食品公司,那么每一批货的出产都是你一个人完成的。
联系买家→签订合同→原料购买→商品生产→商品包装→商品储存…
等等这些步骤全部由你完成,从开始到结束,你们公司都是你一个人。一批货完成,你累死累活,拿到了第一桶金。
【面向对象】
面向对象,站在对象的角度思考问题,我们把多个功能合理的放在不同的对象中,强调的是具备某些功能的对象的对象。为了便于理解我们还拿建公司举例子:
有一天你根据面向对象建立了一个食品公司,这回,你决定轻松点,你找了几个人建立业务部,找了几个人建立了法务部,找了几个人建立了市场部,找了几个人建立生产部,找了几个人建立了包装部,又找了几个人建立储存部。于是你告诉业务部联系买家,命令法务部签订合同,给市场部拨款让他们去购买原料,生产部开始生产,包装部开始包装,储存部负责储存,而你就坐在办公室里,翘着二郎腿,批批文件啥的。
每个部门分工合作一批货完成了,你很轻松,拿到了第一桶金。
总结
还是有点不明白?我看别人的文章发现一个特别易懂的例子:
就是洗衣服,如果是面向过程洗衣服:脱下衣服→放一盆水→倒洗衣粉→浸泡衣服→左搓→右搓→上搓→下搓→拧干→晾晒。
而面向对象洗衣服:脱下衣服→塞进全自动洗衣机→晾晒
这里全自动洗衣机就是一个对象,至于洗衣机怎么洗的衣服,它是左转10分钟还是5分钟你根本不关心,你只关心最后洗出来的衣服。
博主自己的理解
面向过程就很通俗易懂,就是一步一步解决问题必须有先后,每一步你都要做思考做法。面向对象就好像是团队合作去解决问题,他做这块,他做那块,大家一起做,你只需要做好自己的就可以了,完全不需要担心别的方面。
面向对象和面向过程的优缺点
我们还用例子来说明:你面向过程建立公司,你的公司只有你一个人,可你商品生产干的不好,这一个步骤出了问题,你的公司就运行不下去。而面向对象建立公司,你找员工会商品生产,可这几个员工干的不好,没关系,我们辞了,重雇几个新员工。这样来看,面向过程它不易维护一旦出错就很难改正,而面向对象修改起来就很简单。再想,如果你面向过程建公司,什么事都你自己来,那最后挣的钱那肯定你独享,可面向对象建公司,你肯定要给员工开工资啊,不开工资谁给你干活,那挣的钱是不是就不能独享了。这样看来:面向对象它性能就不如面向过程,因为它需要更多的钱(在计算机中指内存空间)需要分配更多的空间。
总结
想起一个笑话:每年情人节C语言都自己过,因为他没对象…