面向对象的程序设计

来源:互联网 发布:windows下nginx 编辑:程序博客网 时间:2024/06/10 07:54

面向对象的程序的最根本的目的就是使程序员更好的理解和管理庞大
而复杂的程序,它在结构化程序设计的基础上完成进一步的抽象。这
种在设计方法上更高层次的抽象正是为了适应目前软件开发的特点。
最早的“面向对象”设计语言是Smalltalk语言,该语言是1972年美
国Xeron公司Palo Alto研究中心为快速处理各种信息而在Alto个人机
上研制的软件,1983年正式发行了Smalltalk 2.0版。Smalltalk 80
被认为是最纯的面向对象的语言,该语言只有一种数据类型—对象。
Smalltalk未能推广,Alto机上的软件也从未出售过,但它所开创的
面向对象程序设计方法将结构化程序设计的抽象层次又增高了一层,
对程序设计方法产生的影响是巨大的。继Smalltalk之后,出现了许
多的面向对象的程序设计语言,如Eiffel、Clos、C++和Objective-C
等,其它的非面向对象的程序设计语言,如Pascal、Basic等也引进
了新的面向对象的机制,产生了新的Object Pascal、Visual Basic
等面向对象的变种。
使用面向对象的程序设计方法绝非是要摒弃现有的结构化程序设计方
法,相反,它是在充分吸收结构化程序设计优点的基础上,引进了一
些新的、强有力的概念,从而开创了程序设计工作的新天地。面向对
象的程序设计方法把可重复使用性视为软件开发的中心问题,通过装
配可重用的部件来生产软件,而不是像目前编程所用的那样,通过调
用函数库中的函数来实现。这里要注意,我们是基于应用程序这一个
层次来阐述这些问题是,事实上,在对象内部的实现上,我们常常使
用过程式的结构化程序设计方法,也常常调用C/C++函数库中的很多
有用的函数,然而从程序的总体结构上说,它是由一系列对象构成
的,对象之间能够以某种方式进行通信和协作,从而实现程序的具体
功能。
面向对象的程序设计中最基本的概念是对象,一般意义上的对象指的
是一个实体的实例,在这个实体中包括了特定的数据和对这些数据进
行操作的函数。对于面向对象的程序设计,一个对象具有状态
(state)、行为(behavior)和标识(identity)。对象的状态包括它的
属性和这些属性的当前值。对象的行为包括可以进行的操作以及所伴
随的状态的变化。对象的标识用来区别于其它的对象。而一个COM对
象的行为由它所支持的接口来定义。我们通常不显式的指定COM对象
的状态,而被其接口所包含。使用IUnknown::QueryInterface在接口
之间进行移动的能力定义了COM对象的标识。
对象的核心概念就是通常所说的“封装性”(encapsulation)、“继
承性”(inheritance)和“多态性”(polymorphism),下面我们分别
阐述其具体含义。