iLeichun

当前位置: 首页 > 软件工程

面向对象和基于对象

分类:软件工程   来源:网络   时间:2010-09-23 16:26:24

   面向对象大家都很熟悉,可是基于对象就不一定了。两个听起来好象是同一回事,而事实上它们却千差万别。基于对象是指:我们采用对象这一封装技术,将数据和操作捆绑在一起,但是并没有合理的使用多态、继承等面向对象的技术进行设计。其中的“没有合理使用”这一修饰非常的重要,可以说它道出了面向对象和基于对象的本质区别。

    虽然,听起来面向对象我们很是熟悉,但就我的观察,很多以前从事C程序开发的人,当他(她)采用面向对象的编程语言(如C++)进行开发时,写出来的程序却是基于对象的。更为通俗的说,采用面向对象的语言编写面向过程的程序!

    要掌握面向对象技术不是一件容易的事,其要求我们对于所有的编程事务从“对象”的角度来考虑,是一种全新的思考问题的方法。我想错用最近面试过的一位工程师的话来说明什么是面向对象开发,他是这么说的“现实世界是什么,那么程序当中就应当是什么”,我觉得这句话概括得非常的好。

    从我的学习经验来看,一开始其实我并不明白为什么要用对象来封装,记得刚从C转向C++时,只是觉得C++是另一种形式的“C”,那时并没有深刻的领悟到C++语言中所蕴涵的面向对象的强大开发能力。后来,因为工作的需要,需要对来自Microsoft MSDN中的一个Drawcli例程进行一定的扩展,这个程序你现在从MSDN光盘中还能找到,如果你想真的理解面向对象,Drawcli是一个非常好的开端。如果你懂了Drawcli的设计思想,你一定会对面象对象有一个感性认识。

    当然,做了Drawcli以后,我不认为我的面向对象的开发能力就一下子上去了,而是在平时的开发过程中要去模仿。模仿着模仿着,在一次一个应程序的开发时,我记得当时我对于一个在多种情况下的复杂管理问题很是苦恼,后来突然想到了从其中抽象出一个类来做管理,那一刻所有的困惑全都没有了。之前之所以复杂是因为采用面向过程的思考方式去解决,而当我换成面向对象的方式时,其实是很简单的问题。在那一刻,我真的领悟到了面向对象设计的好处,也是从模糊的理解到真正的理解的一个转折点!从那以后,我觉得自己能做到对于软件设计“现实世界是什么,在程序中就应当是什么”。
 

本文出自 “李云” 博客,请务必保留此出处http://yunli.blog.51cto.com/831344/184846

更多