面向对象技术的作用与发展趋势1引言面向对象一词的广泛使用,反映了计算机科学发展的需要。计算机科学的发展与社会的发展是相互促进的,计算机科学技术的发展推动了社会的现代化,计算机应用的不断广泛,也反过来对计算机科学提出了新的要求;人们越来越希望能直接与计算机进行交互,而不再受专门训练后才使用它。对于这一要求的满足也给计算领域自身的技术发展提出了更高的要求,于是当人们开始寻求一种更能反映人类解决问题的自然方法时,“面向对象技术”便产生了。2结构化程序与面向对象技术结构化程序设计(StructureProgramming)方法的诞生,使得程序开发者能够编写出比较复杂的程序,但是即使结构化编程方法,一旦某个应用系统达到一定的大小,也对它无法控制,程序员就陷入源程序的汪洋大海之中,调试、修改是非常令人头痛的事情,这是因为这种程序设计方法把一个程序看成函数和过程的集合,其设计思路地自顶向下层次化,逐步求精精细化;其程序结构是按功能划分基本模块为树型结构;使用局部变量程序,使模块间的关系尽可能简单、独立,并从而可单独验证模块的正确性,即所谓的模块化;函数和过程是程序的活动单元,数据用于传输;其特点是:按层次组织模块;每一模块只有一个入口一个出口;程序代码和被处理数据分离,程序被动处理数据,而不是由数据来主动地驱动程序的执行(程序=数据结构+算法)。面向对象的程序设计(Object-OrientedProgramming)是一种新的编程方法,它汲取了结构化程序设计中的优点和长处,同时将一些强有力的新概念、新特性(对象、类、方法、消息、多态、继承、动态定连)融合在一起,实际上,现实世界就是由对象和动作组成的,在OO中几乎每一个名词就表了一类对象,它具有属性或特征。而语法的动词就是动作,也可解释行为。从程序员的角度看,数据是对象的特征(或特性),而过程或函数是它的行为,所以,对象是数据和程序的组合体。如图所示:3面向对象技术的作用传统设计方法以功能为主进行设计,结构性强,便于设计,便于理解,但软件后期的修改、维护特别是在大型软件显得更为困难,而采用对象式设计有利于复用,有利于扩充,有利于提高软件质量,有利于加速软件开发过程。面向对象设计方法追求的是现实问题空间与软件系统解空间的近似或直接1/3参考资料模拟。可以这样看,现实世界包含两大部分:物质和意识,映射到面向对象的系统解空间就是具体事物(对象)和抽象概念(类)。使用OO方法,设计人员可以依照自己的意图创建自己的对象,并将问题映射至该对象上,这一方法直接自然,可以使设计人员把主要精力放在系统一级上,而对细节问题可以较少地关心。面向对象设计方法之所以受到当今各个方面的重视,是因为它具有许多良好的特点:模块性:对象是一个自动机,互相之间能通过对象认可的途径进行通信(发送消息),相互没有预料不到的影响,可以较为自由地为各个不同的软件系统所用;封装功能:为信息隐蔽提供具体的实现手段,用户不必清楚对象的内部细节只要了解其功能描述就可以使用;代码共享:继承性提供了一种代码共享的手段,可以避免重复的代码设计,使得面向对象的方法确实有效;灵活性:对象的功能执行是在消息传送时确定的,支持对象的主体特征,使得对象可以根据自身的特点进行功能实现,提高了程序设计的灵活性;易维护性:对象实现了抽象和封装,使其中可能出现的错误限制在自身,不会向外传播,易检错和修改;增量型设计:面向对象系统可以通过继承机制不断扩充功能,而不影响原有软件的运行。对象是具有封装功能的独立体,与环境之间具有清析的接口,它可以用于测试和存档而脱离具体的应用,从而形成软件单元的库存,通过使用这种单元,软件的生产效率可以得到较大的提高。可以说,面向对象程序从结构和功能上都胜过于传统程序,从传统程序设计过程来看,在了解其程序设计语言的语法之后就可以把问题求解技巧从自然语言翻译到该种程序语言,而使用面向对象语言系统,所做的工作则不同了,它是基于系统和程序员共享一个共同的环境,并且所有程序都是对该环境的扩充。因此面向对象可以装配所有的程序,并建立程序单元之间的通讯。面向对象的分析方法不...