关于面向过程和面向对象和面向抽象和……

今天和一个小伙伴讨论问题的时候,无意间体会到了面向过程和面向对象更为形象的解释。

简单来说,面向过程就是把功能代码块封装在一起叫函数;而面向对象就是把功能相近的函数与和这些函数相关的变量封装在一起,叫做类。

有人会说有的类里没有函数,只有属性,这怎么讲?其实获取对象的属性本来就是一个“函数”,只是这个函数和一般的函数长得不太一样而已。

当项目很简单,简单到整个项目就只有几十行代码。这时候,什么函数,什么类,我都不用。

面向过程

当项目复杂一点,代码多到几百行,这时候,如果不用函数,那代码读起来就比较困难。读一个项目,要读几百行代码。

但是呢,实际上,一个业务的实现,肯定是要分步骤的。先注册,再登陆,再浏览商品,再添加购物车,再生成订单,再支付,其实每一步都可以封装成一个函数。

这样,读代码的时候,就可以先总览各步骤,再看各步骤的具体实现(可读性)(其实可读性也意味着“可维护性”,如果读都费劲,还谈什么维护)。

另一方面,当业务比较多的时候,业务之间肯定会有功能一样的代码,这时候,当第二次遇到某个功能的时候,就可以直接调用原来写好的那个函数(复用性)。

面向对象

当项目再复杂一点,代码多到几千行上万行。这时候,虽然把各种功能封装好了,但是需要的功能实在太多了,也就是说可能会有几十个甚至几百个函数。这时候,怎么办?

这时候可以给函数分分类,把功能相近或者有某种联系的函数写在一起,并通过同一个命名空间(类名 or 实例名)调用。也许,类的概念就是这么产生的。

面向抽象

到这里,不知道各位发现了没有,函数是在代码行数多到不易读的情况下出现的。类是在函数多到不易读的情况下出现的。那么类多到一定程度呢?

当然是抽象了~

什么是抽象,不就是对类进行分类吗?有一个父类叫狗,他有三个子类“哈士奇”、“中华田园狗”、“阿拉斯加”。“狗”这个类,其实不就是对“哈士奇”,“中华田园狗”,“八公”这三个类进行总结吗(总结就是封装啊)?

 

关于 20171212 在虹口

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值