C++ Follow Me(1): 你面向对象了吗?

C++ Follow Me(1): 你面向对象了吗?

黄国强 2006-7-12

    传统的C的编程方式是以函数为中心的编程方式,换句话,整个程序就是函数的集合。有人要问,这有什么问题吗?当然没有问题。在面向对象技术出现之前,用过程式的设计方法依然构建出很多出色的系统,甚至有的现在还在运行。
    那么我们为什么还需要向面向对象的方法转变呢?一个很现实的问题就是经济方面的问题。用面向对象的方法构建的系统不但易于开发,而且后期维护方面都存在着巨大的优势。
    本来,感觉写这样的题目似乎有点落伍,难道现在还有人用非面向对象的方法编程?现实情况是,确实如此,而且人还有很多(包括一些用面向对象的工具写着过程式代码的程序员)。所以在这里从几个角度花点时间罗嗦一下看来还是必要的。
1)高内聚、低耦合
   “高内聚、低耦合”意思是一个模块的功能是高度内聚的(即:功能越单一越好),而模块与模块之间耦合度越低越好。显然,类似C的这样过程式的语言要实现这点非常困难,有的时候必须通过企业的规范和纪律来保证,显然这是很不可靠的。而在面向对象的语言中,良好的设计加上面向对象语言的威力,高内聚、低耦合还是比较容易得到保证的。
2) 编程的易用性
    比如,我们调用一个函数,如果它有很多参数,调用的时候就必须搞清楚每个参数的具体含义。显然这个函数很不友好,这个在C在中非常常见。而在C++中,由于许多参数已经变成了类的数据成员,所以调用起来非常轻松。
3) 抽象性
    软件的内部编程抽象度的高低,直接决定整个软件产品的质量。如果对抽象度没有体会,我们可以做一些比方。你是愿意用汇编写程序还是愿意用C这样的语言写程序呢?显然C相比汇编更接近我们的思维方式。所以绝大多数人都愿意选择C或者更高级的语言来写程序。因为这些高级语言已经把计算机内部的CPU、内存和磁盘等抽象或隐藏掉了,这样我们就可以比较轻松的编程。那么我们如果想把需要开发的软件所面对的领域更进一步的抽象,形成一些与领域对应的基础模块的话,选择面向对象的语言显然是更合适一些。比如,在用面向对象技术开发的股票系统中,内部类型就不只是简单的整形数、浮点数等,而是有许多与股票相关的术语类,比如股票类型、多头类型、空头类型等。整个这些术语类构成一个复杂的对象模型。
4) 适应未来需求的能力
    过程改变的可能性大大高于对象变动的可能性。所以面向对象的系统在适应未来需求方面显得更胜一筹。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

acloud_csu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值