理论教育 面向对象的程序设计方法-管理信息系统

面向对象的程序设计方法-管理信息系统

时间:2023-08-17 理论教育 版权反馈
【摘要】:相对于前面结构化的程序设计方法,面向对象方法具有如下优点:1.与人类习惯的思维方法一致传统的程序设计技术是面向过程的设计方法,也就是我们上一节所讲的结构化程序设计,这种方法以算法为核心,把数据和过程作为相互独立的部分,数据代表问题空间中的客体,程序代码则用于处理这些数据。

面向对象的程序设计方法-管理信息系统

面向对象程序设计(Object Oriented Programming,OOP)是指一种程序设计范型,同时也是一种程序开发的方法。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性。当我们提到面向对象的时候,它不仅指一种程序设计方法,更多意义上是一种程序开发方式。读者在学习本节内容时,有必要了解一些关于面向对象系统分析和面向对象系统设计(Object Oriented Design,OOD)方面的知识,详情可参考本教材第三章面向对象的系统开发方法一节的相关内容。

相对于前面结构化的程序设计方法,面向对象方法具有如下优点:

1.与人类习惯的思维方法一致

传统的程序设计技术是面向过程的设计方法,也就是我们上一节所讲的结构化程序设计,这种方法以算法为核心,把数据和过程作为相互独立的部分,数据代表问题空间中的客体,程序代码则用于处理这些数据。

把数据和代码作为分离的实体,反映了计算机的观点,因为在计算机内部,数据和程序是分开存放的。但是,这样做的时候总存在使用错误的数据调用正确的程序模块,或使用正确的数据调用错误的程序模块的危险。使数据和操作保持一致,是程序员的一个沉重负担,在多人分工合作开发一个大型软件系统的过程中,如果负责设计数据结构的人中途改变了某个数据的结构而又没有及时通知所有人员,则会发生许多不该发生的错误。

传统的程序设计技术忽略了数据和操作之间的内在联系,用这种方法设计出来的软件系统其解空间与问题空间并不一致,令人感到难以理解。实际上,用计算机解决的问题都是现实世界中的问题,这些问题无非由一些相互间存在一定联系的事物所组成。每个具体的事物都具有行为和属性两方面的特征。因此,把描述事物静态属性的数据结构和表示事物动态行为的操作放在一起构成一个整体,才能完整、自然地表示客观世界中的实体。

面向对象的软件技术以对象(Object)为核心,用这种技术开发出的软件系统由对象组成。对象是对现实世界实体的正确抽象,它是由描述内部状态表示静态属性的数据,以及可以对这些数据施加的操作(表示对象的动态行为)封装在一起所构成的统一体。对象之间通过传递消息互相联系,以模拟现实世界中不同事物彼此之间的联系。

面向对象的开发方法与传统的面向过程的方法有本质不同,这种方法的基本原理是,使用现实世界的概念抽象地思考问题,从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大部分过程中都用应用领域的概念去思考。在面向对象的开发方法中,计算机的观点是不重要的,现实世界的模型才是最重要的。面向对象的软件开发过程从始至终都围绕着建立问题领域的对象模型来进行:对问题领域进行自然的分解,确定需要使用的对象和类,建立适当的类等级,在对象之间传递消息实现必要的联系,从而按照人们习惯的思维方式建立起问题领域的模型,模拟客观世界。

2.稳定性好(www.daowen.com)

面向对象方法基于构造问题领域的对象模型,以对象为中心构造软件系统。它的基本方式是用对象模拟问题领域中的实体,以对象间的联系刻画实体间的联系。因为面向对象的软件系统的结构是根据问题领域的模型建立起来的,而不是基于对系统应完成的功能的分解,所以,当对系统的功能需求变化时并不会引起软件结构的整体变化,往往仅需要作一些局部性的修改。例如,从已有类派生出一些新的子类以实现功能扩充或修改,增加或删除某些对象等。总之,由于现实世界中的实体是相对稳定的,因此,以对象为中心构成的软件系统也是比较稳定的。

3.可重用性好

用已有的零部件装配新的产品,是典型的重用技术,重用是提高生产效率的一个重要方法。面向对象的软件技术在利用可重用的软件成分构造新的软件系统时,体现出较大的灵活性。它可利用两种方法重复使用一个类:一种方法是创建该类的实例,从而直接使用它;另一种方法是从它派生出一个满足当前需要的新类。继承性机制使得子类不仅可以重用其父类的数据结构和程序代码,而且可以在父类代码的基础上方便地修改和扩充,这种修改并不影响对原有类的使用。由于可以像使用集成电路(IC)构造计算机硬件那样,比较方便地重用对象类来构造软件系统,因此,有人把类称为“软件IC”。

面向对象的软件技术所实现的可重用性是自然和准确的,在软件重用技术中它是最成功的一个。

4.可维护性

面向对象的软件技术符合人们习惯的思维方式,因此用这种方法建立的软件系统容易被维护人员理解,他们可以主要围绕派生类来进行修改、调试工作。类是独立性很强的模块,向类的实例发消息即可运行它,观察它能否正确地完成要求它做的工作,对类的测试通常比较容易实现,如果发现错误也往往集中在类的内部,比较容易调试。总之,面向对象技术的优点并不是减少了开发时间,相反,初次使用这种技术开发软件,可能比用传统方法所需时间还稍微长一点。开发人员必须花很大精力去分析对象是什么,每个对象应该承担什么责任,所有这些对象怎样很好地合作以完成预定的目标。这样做换来的好处是,提高了目标系统的可重用性,减少了生命周期后续阶段的工作量和可能犯的错误,提高了软件的可维护性。此外,一个设计良好的面向对象系统是易于扩充和修改的,因此能够适应不断增加的新需求。以上这些都是从长远考虑的软件质量指标。

面向对象模拟了对象之间的通信。就像人们之间互通信息一样,对象之间也可以通过消息进行通信。这样,我们不必知道一个对象是怎样实现其行为的,只需通过对象提供的接口进行通信并使用对象所具有的行为功能。而面向过程则通过函数参数和全局变量达到各过程模块联系的目的。

面向对象把一个复杂的问题分解成多个能够完成独立功能的对象(类),然后把这些对象组合起来去完成这个复杂的问题。采用面向对象模式就像在流水线上工作,我们最终只需将多个零部件(已设计好的对象)按照一定关系组合成一个完整的系统,这样使得软件开发更有效率。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈