面向对象技术--

来源:互联网 发布:mac剪切视频软件 编辑:程序博客网 时间:2024/05/18 09:44
 面向对象技术 Object-Oriented echnology 
  面向对象技术使软件的开发超越了过程式编程,而进入了简化应用程序开发的可重用编程世界。不象旧的编程方式,当程序的体积增长时,程序维护和调试并不变得更复杂。对象技术在两个级别发挥作用:
  在数据级别,对象技术可以集成一个机构中的许多不同类型的信息,过去的信息已经不再兼容了。
  在程序开发级别,对象技术提供模块化程序构造,这时,程序员在现有对象的基础之上进行开发。对象可以被其他对象再使用,以利用它们的过程,从而消除了当再次需要它们的时候,必须每次都重写这些代码。
  由于无需改变或分解整个系统,所以再设计或扩展系统是很容易的。实际上,是放弃或修改这些模块,并且增加新的模块以提供增强的功能。
  一个对象是一个完整的数据分组,它包括对数据进行处理的功能。在一个面向对象的环境,对象的数目是数不清的。它们可能包括一个数据库的记录、一个文件、一个物理资源、甚至是一个用户(它是用户的登录帐户)。为了使开发人员使用面向对象编程语言工作,对象是一个自满足模块,它包含数据、以及数据的结构、和处理数据的功能。
  对象可以是下面情况的任何之一:
  在一个面向对象操作系统中实现一个进程的代码,例如验证安全权限。
  程序员和开发人员用于汇编的预定义代码模块。
  来自一个应用程序的数据块,如一个绘图程序、电子表格或多媒体工具。
  在一个数据库中的对象,例如库存条目或顾客。
  在一个面向对象的数据库中,对象可以代表跟踪的商务中的实际实体,例如生产的产品、库存、顾客和厂商。相应地,在面向对象的操作系统中,对象也是一些实体,如文件、设备和用户,或构成一个符合文档的实体数据块。在面向对象的环境,首先定义基本的对象,然后围绕这些对象建造系统。
  有许多潜在对象,并且它们可以归化到定义不同类型对象的层次化类(hierarchical classes)。父类可以对子类传递特性。让我们来考虑一个类“people”,它拥有两个子类“male”和“female”。这些子类又可以拥有它们自己的子类,如图O-3所示。每个子类都有从它的父亲处继承来的综合特征,以及它们自己的专有特征。另外,一些继承来的特征由于它们对子类不合适,而会被阻挡。
  这和计算机如何关联昵?记住,现在我们在讨论存储许多不同数据类型,和访问许多不同类型应用程序数据的途径。通过按这种方式对数据分类,我们可以在一个对象内,直接包括进行抽取、显示、合并和打印的过程数据。如果需要,对数据进行分类,可以简化构造过程和改造(revision)过程。例如,一个数据块对象可能包括一个对这些数据按特定的方式进行排序的过程,它可以被许多不同的使用这个数据的应用程序所激活。
  下面是对象类和对象实例:
  对象类 一个类定义了一组对象。类具有行为(be-havoir),它描述一个对象能够做什么以及做的方法(method),它们是可以对这个对象进行操作的程序和过程。
  对象实例 一个对象是一个类的一个实例,它代表一个现实物理“事件”,例如在一个财物系统数据库中的一个顾客或一个库存部分。类的继承(class inheritance)是一个重要的概念,它为一个子类继承它的父类的内置描述提供了途径。在父类中使用的代码被向下传给这个类指定的一个类(子类)。
  例如,一个面向对象的数据库可以有一个称为“client”的类,这个类有两个子类,分别称为“company”和“individual”。首先,创立称为“client”的对象。它包含一个结构和一些过程,这些过程处理数据和从对象之外获得信息。然后,company和individual对象作为client的子类进行定义。作为一个子类,它们继承client对象的结构和特征,但是这些特征中的一些可能被屏蔽,或可以增加一些附加特征。例如,company子类可以具有一个特定的折算,而individua1子类却不具有。如果你需要一个关于客户的列表,你可以请求client对象进行列表。然而,如果你希望知道客户的账目平衡,你就需要从每个包含客户平衡的子类对象获得信息。
  对象包含数据和过程,并且当被请求时提供信息。想象一个包含数据的箱子,它有一些按钮,你可以按这些按钮来对数据运行过程。方法是,一些对对象进行操作的过程或程序,它们可以使对象根据对象的内部代码和结构来以特定的形式进行动作。相似地,可以对对象的不同的类进行操作。有一个概念称为多态性(poly-morphism)或重载(overloading)。使用多态性,一组通用的方法可以在很大范围的类上进行操作。然而,具有相同名字和称呼的方式却可能诱发不同的事情。例如,在文本数据的“next”导致光标跳到下一个工作,而在电子表格的“next”却导致光标跳到下一个单元。
  对象通过发送消息与另一个对象对话。这些消息在本质上是通过按下对象上的“按钮”从对象请求过程。在一个网络环境,你可以查看和消息总线相连的对象,如图O-4所示。消息传递为对象在一个面向对象的分布式环境环境进行通信提供了一条有效途径。消息传递是一种存储再转发方式,就象在电子函件系统中使用的那样。消息被从一台计算机传送到另一台计算机,直到它们抵达目的地。
  所有这些都加到软件中,它们易于维护,并且在连续的基础之上改进,即无需对整个系统进行重新设计。
  对象是可重用的,使得系统增长时,它易于加入系统,这是因为在现有对象中的代码对创造新的对象是可重用的。
  对象系统是可扩展的,开发人员增加模块,而模块重用内置数据结构,无需重编译操作系统。
  易于建造系统,这是因为面向对象对设计系统和实现系统提供了一条很自然的途径。
  对象可以提供了一种通用接口,因而许多不同应用程序能够访问数据。
  也有许多不利的方面,包括大量增加了前端设计的时间,减低了性能和技术的不成熟。然而,随着系统的成长和硬件的不断强大,这些不利可以减退。这些缺陷,在对象系统可以在遍布分布网络上的许多不同类型的系统上向用户提供数据这一事实面前,也会减少。
  Objects in Distributed Environments 分布式环境中的对象
  对象技术被认为对实现未来的分布式系统是很有生命力的。这样,系统的复杂性可以通过实现消息传递服务(如对象请求代管器)的模型而简化。对象只是简单地请求服务,并且其他对象提供这些服务。开发人员不需要更多地知道对象将在上面通信的系统情况。事实上,对象技术为局部使用、将来扩展到异构分布式环境、设计应用提供了途径。
  在这一领域的发展包括:
  对象管理组织(OMG)的公用对象请求代管器体系结构(CORBA)是一种规范,它的设计是为对象产生和接收请求提供了途径。
  Microsoft的对象链接和嵌入(OLE),为在单一台式系统或一个网络上的应用程序共享数据提供了一条途径。
  IBM的系统对象模型(SOM)和分布式系统对象模型(DSOM)提供了低级对象语言
  OpenDoc是一种为共享文本、图形和多媒体对象,而由APPLE、Borland、IBM、Novel1和WordPerfect等公司开发的开发环境。
0 0
原创粉丝点击