首页 理论教育 面向对象技术的基本特征-公交数据模型

面向对象技术的基本特征-公交数据模型

时间:2023-08-22 理论教育 版权反馈
【摘要】:面向对象技术可使设计者不必反复地编写类似的功能模块,通过继承机制进行特殊类化的过程,使得数据模型设计变成仅对特殊类与一般类的差异进行设计的过程。面向对象技术将数据与操作封装在一起,简化了调用过程,方便了维护,并减少了模型设计过程中出错的可能性。因此,采用面向对象技术进行数据模型设计具有开发时间短、效率高、可靠性好、所开发的模型更强壮等优点。

面向对象技术的基本特征-公交数据模型

面向对象技术强调在软件开发过程中,面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物。面向对象技术的基本特征主要有抽象性、封装性、继承性和多态性(Coad and Yourdon,1992)。

(一)抽象性

把众多的事物进行归纳、分类,是人们在认识客观世界时经常采用的思维方法,“物以类聚,人以群分”就是分类的意思,分类所依据的原则是抽象。抽象(Abstract)就是忽略事物中与当前目标无关的非本质特征,更充分地注意与当前目标有关的本质特征。从而找出事物的共性,并把具有共性的事物划为一类,得到一个抽象的概念。因此,抽象性是对事物的抽象概括描述,实现了客观世界向计算机世界的转化。将客观事物抽象成对象及类是比较难的过程,也是面向对象方法的第一步。

(二)封装性

封装(Encapsulation)就是把对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。

封装有两个含义:一是把对象的全部属性和行为结合在一起,形成一个不可分割的独立单位。对象的属性值(除了公有的属性值)只能由这个对象的行为来读取和修改。二是尽可能隐蔽对象的内部细节,对外形成一道屏障,与外部的联系只能通过外部接口实现。封装的信息隐蔽作用反映了事物的相对独立性,可以只关心它对外所提供的接口,即能做什么,而不注意其内部细节,即怎么提供这些服务。

封装的结果使对象以外的部分不能随意存取对象的内部属性,从而有效地避免了外部错误对它的影响,大大减小了查错和排错的难度。同时,当对象内部进行修改时,由于它只通过少量的外部接口对外提供服务,因此,同样减小了内部的修改对外部的影响。同时,如果一味地强调封装,则对象的任何属性都不允许外部直接存取,要增加许多没有其他意义,只负责读或写的行为。这为模型设计工作增加了负担,增加了运行开销,并且使得程序显得臃肿。为了避免这一点,在设计的具体实现过程中应使对象有不同程度的可见性,进而与客观世界的具体情况相符合。

封装机制将对象的使用者与设计者分开,使用者不必知道对象行为实现的细节,只需要用设计者提供的外部接口让对象去做。封装的结果实际上隐蔽了复杂性,并提供了代码重用性,从而降低了模型开发的难度。

(三)继承性(www.xing528.com)

继承(Inheritance)是一种联结类与类的层次模型。继承性是指特殊类的对象拥有其一般类的属性和行为。继承意味着“自动地拥有”,即特殊类中不必重新定义已在一般类中定义过的属性和行为,而它却自动地、隐含地拥有其一般类的属性与行为。继承允许和鼓励类的重用,提供了一种明确表述共性的方法。

一个特殊类既有自己新定义的属性和行为,又有继承下来的属性和行为。尽管继承下来的属性和行为是隐式的,但是,无论在概念上,还是在实际效果上,都是这个类的属性和行为。当这个特殊类又被它更下层的特殊类继承时,它继承来的和自己定义的属性和行为又被下一层的特殊类继承下去。因此,继承是传递的,体现了大自然中特殊与一般的关系。

在模型设计过程中,继承性实现了模型功能模块的可重用性、独立性,缩短了开发周期,提高了数据模型开发的效率,同时,使数据模型易于维护和修改。这是因为要修改或增加某一属性或行为,只需在相应的类中进行改动,而它派生的所有类都自动地、隐含地做了相应的改动。

由此可见,继承是对客观世界的直接反映,通过类的继承,能够实现对问题的深入抽象描述,反映出人类认识问题的发展过程。

(四)多态性

面向对象设计借鉴了客观世界的多态性,体现在不同的对象收到相同的消息时,产生多种不同的行为方式。具体来说,多态性(Polymorphism)是指类中同一函数名对应多个具有相似功能的不同函数,可以使用相同的调用方式来调用这些具有不同功能的同名函数。

继承性和多态性的结合可以生成一系列虽类似但独一无二的对象。由于继承性,这些对象共享许多相似的特征;由于多态性,针对相同的消息,不同对象可以有独特的表现方式,实现特性化的设计。

上述面向对象技术四大特征的充分运用为提高数据模型开发效率起着重要的作用,通过编写可重用代码、编写可维护代码、改代码模块、共享代码等方法,充分发挥其优势。面向对象技术可使设计者不必反复地编写类似的功能模块,通过继承机制进行特殊类化的过程,使得数据模型设计变成仅对特殊类与一般类的差异进行设计的过程。当高质量的代码可重复使用时,复杂性就得以降低,效率则得到提高。面向对象技术将数据与操作封装在一起,简化了调用过程,方便了维护,并减少了模型设计过程中出错的可能性。继承性和封装性使得数据模型的修改带来的影响更加局部化,而且类中的操作是易于修改的,因为它们被放在唯一的地方。因此,采用面向对象技术进行数据模型设计具有开发时间短、效率高、可靠性好、所开发的模型更强壮等优点。

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

我要反馈