« 上一篇下一篇 »

类和对象的属性

面向对象软件的上下文中,对象可以用于表示几乎所有事物和概念——可以表示无力对象,例如“桌子”或者客户”;也可以表示只有在软件中才有意义的概念性对象,如“文本输入区域”或者“文件”。通常,在软件中,我们对对象最感兴趣,这些对象当然既包括现实世界存在的实物对象,也包括需要在软件中表示的概念性对象。

       面向对象软件由一系列具有属性和操作的自包含对象组成,这些对象之间能够交互,从而达到我们的要求。对象的属性是与对象相关的特性或变量。对象的操作则是对象可以执行的、用来改变其自身或对外部产生影响的方法、行为或函数。
面向对象软件的一个重要优点是支持和鼓励封装能力。封装也叫数据隐藏。从本质上说,访问一个对象中的数据只能通过对象的操作来实现,对象的操作也就是对象的接口。
       一个对象的功能取决于对象使用的数据。在不改变对象的接口的情况下,能很容易地修改对象实现的细节,从而提高性能、添加新性能或修复bug。在整个项目中,修改接口可能会带来一些连锁反应,但是封装允许在不影响项目其他部分的情况下进行修改或修复bug。
在软件开发的其他领域中,面向对象已经成为一种标准,而面向功能或过程的软件则被认为是过时的。不幸的是,由于种种原因,大多数Web脚本仍然是使用一种面向功能的特殊方法来设计和编写的。
       存在这种情况的原因是多方面的:一方面,多数Web项目相对比较小而且直观。我们可以拿起锯子就做一个木制的调味品的架子而不用仔细规划其制作方法。同样,对于Web项目,由于网站规模太小,设计者也可以这样不经过仔细规划而成功地完成大多数Web项目。然而,如果不经过计划就拿起锯子来建造一栋房子,房子的质量就没有保证了。同样的道理也适用于大型的软件项目——如果我们要想保证其质量的话。

       许多Web项目就是从一系列具有超链接的页面发展成为复杂的Web应用程序的。这些复杂的应用程序,不管是使用对话框和窗口,或者是动态生成的HTML页面来表示,都需要使用适当的方法对开发方法加以规划。面向对象可以帮助我们管理项目中的复杂度,提高代码的可重用性,从而减少维护费用。
 
       在面向对象的软件中,对象是一个被保存数据和操作这些数据的操作方法的唯一,可标识的集合。例如,我们可以定义两个代表按钮的对象,虽然它们具有相同的“OK”标签,而且宽都是60像素,高都是20像素,其他属性也都相同,但是仍然要将两个按钮作为不同的对象处理。在软件中,我们用不同的变量作为对象的句柄。
       对象可以按类进行分类。类是表示彼此之间可能互不相同,但是必须具有一些共同点的对象集合。虽然类所包含的对象可能具有不同属性值,但是,这些对象都具有以相同的方式实现的相同操作以及表示相同事物的相同属性。

« 上一篇下一篇 »