再谈面向对象的理解面向过程与面向对象的通俗理解

前几天跟着腾讯课堂又学了一下面向对象的思想,对此又有了新的一些发现和理解。由此想把这个想法写下来,因为觉得百度或是别人和我说的都不是特别的透彻,尤其好多都是抽象意义上的理解,没有体现在编程上,同时也没有达到让一个完全不懂程序的人,去理解面向对象的编程思维。在此想分享一下个人对面向对象的深入理解。
在学Java基础的时候就说面向对象编程,之前是面向过程编程也就是c语言,到底什么是面向过程编程,面向过程简单的理解就是一连串的函数组合,传入参数,通过这几个函数组合的操作加工(选择,判断,循环:图灵提出的要完成一件事情的基本模型)返回给调用者,组成方式是形参实参,函数体,描述的中心也是这几个参数和函数体的算法,纯粹的函数传参和调用。

面向对象是将原来的函数体和具有特征和实际意义的参数提取出来,将其形成若干对象(事物)并在潜意识上组建了各个主体之间的关系关系,使代码落地更加优雅和容易,不用像面向过程一样写大量的判断和函数调用,在面向对象中可以使用继承不同的方法实现来使调用更加清晰。

这是三个函数传入参数:
goHome(me);
buyGreans(me,money,supermarket);
makeFood(me,greans,kitchen);
如果用面向对象的思维就是这样的:
class Me{
int money;
Person returnHome(me){
return gohomeperson;
}
Greans buyGreans(me,money,supermarket){
return Supermarket.sellGreans();
}
Food makeFood(me,greans ,kitchen){
kitchen.makeFood(me,greans );
}
}
class Supermarket{
Greans sellGreans(person,money){}
}
class Kitchen{
food makeFood(person,greans ){
洗菜,切菜,做饭。。。
return food;
}
}

总结:面向对象强调完成一件事情过程的基础之上同时也强调了在完成这件事情所需要的对象比如上面的人,超市,厨房,同时也对对象做一定的描述比如说人有一个属性他有多少钱。过程就是这个人能回家,能买菜,能做饭等等。
纯粹的面向对象或是面向过程都不能很好的完成描述事物的发展以及办事的过程,过分的强调面向对象将办一个事情细粒度的抽象也会导致程序很臃肿和关系复杂,过分强调过程会导致程序复杂晦涩难懂不利于维护和开发,两者结合相得益彰才是王道。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值