面向过程,面向对象与程序设计

有一种说法,说是一个长时间搞面向过程的人(搞c的人)很难理解OO的精髓,很难做出好的OO设计。

以前我也是同意这种说法的,不过那是在学校的时候。

 

现在我的观点是

不论面向过程还是面向对象,要做一个好的设计,必须掌握足够的计算机底层知识。

 

1 最根本的理由,软件开发是在计算机上的,因此,天然的要受到计算机的限制。计算机对程序的执行过程本身就是一个过程,其他任何的高级概念都是建立在这个基础之上的一个抽象。因此,有必要了解计算机是怎么执行这个程序的,不论该程序是用什么语言写的。

2 学习面向过程语言的时候有更多的机会了解计算机系统底层,以及数据结构,算法的一些知识。这个当然是因人而异的,并不是说一个学c的人一定在这些方面比学java的人强。但是,平均而言,的确是这样的,这个还是有很多调查数据做支持的。

3 OO只是站在一个更高的层次去思考问题,只是思考问题的时候,忽略掉了很多细节的问题。但是,这并不代表不需要知道底层的东西。一个不懂得基本排序算法的人,一个不懂bit和byte区别的人,一个不懂计算机存储层次的人,你能相信他能做出一个好的设计,真正的用好OO吗。

4 某些非功能特性,比如安全,面向过程面向对象在这个时候已经是实现细节了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值