(4)继承性继承性(inherintance)是自动地共享子类、超类和对象中的方法和数据的一种机制。如果没有继承性,不同类中的对象中的数据和方法就可能出现大量的重复。继承性比较自然地体现了对象间的联系。
7 R; C/ O* \2 ` J(5)封装性封装是一种信息隐蔽技术,用户只能看到对象封装界面上的信息,对象内部的信息对用户是隐蔽的。封装的目的是使对象的使用者和对象的设计者分开,使用者不必知道实现的具体细节,只须按设计者的要求来访问对象,这样方便于系统的集成。封装是一种强有力的系统集成手段。封装和类说明有关。一个类的每一个实例都是一个单独的封装(或组件)。显式地把对象的规格说明(specification)和对象的实现分开是面向对象的一大特色。封装本身即是一个模块,把对象的定义模块和实现模块分开,从而使得维护和修改变得方便。
' n0 \; y( o' _' P3 i; |(6)多态性所谓多态(polymorphic),即一个名字可以具有多种语义。多态与动态类型和静态类型有关。动态类型是指在执行期间可以改变的类型。静态类型是在程序文本中声明时确定下来的类型。在面向对象的系统中,利用重名这样多义性不会带来混乱,并且为需求分析和设计带来了好处。
0 O" N. i" C) J+ d5.动态聚束& K7 v, L) B6 B9 P8 ^$ c
聚束(binding)其实并不是一个新概念。一个程序经编译到连接成为可运行的目标代码,就是将可执行代码聚束在一起。用传统语言写的程序在运行之前即可聚束,故此称之为静态聚束(static binding)。而面向对象语言则在程序运行时可发生聚束,故称之为动态聚束(dynamic binding)。动态聚束增加了程序的简单性和可扩充性,使程序增删自如,不易出错,但效率略低。应该指出,静态聚束运行效率高,但修改维护时工作量大。9 k s- j" b# W8 x) p3 d( B
6.面向对象的系统分析方法
' d3 P% L+ E* }* o系统分析过程就是提取一个系统的需求过程,即是指为了满足用户的需求,系统必须做什么,而不是指系统如何实现。系统分析通常是一个需求文档开始点,同用户进行一系列的讨论为开端。一般来说,参加制定文档的人应包括系统的最终用户、问题域专家、系统的开发者以及其它感兴趣的人。在过去的10年中,已经在系统分析中使用了功能分解法、数据流法、信息模拟法。最近研究了面向对象分析(OOA)方法。下面将综述这4种主要的需求分析方法。
& c7 s1 m4 | T; S(1)功能分解法 它可表示为功能=子功能+子功能接口
6 r& f; m4 Q- k+ m(2)数据流法 数据流法,即通常所说的结构分析法,它可表示为数据流=数据存储+数据变换+过程说明+数据字典7 V( a2 F8 E6 z# X
(3)信息模拟法 信息模拟的主要建模工具是实体-关系图,现已发展成为语义数据模型。信息模拟法可以表示为信息模拟法=对象+属性+关系+超类+子类+对象
$ E% G; i4 E0 @( m4 M& Z6 T(4)面向对象法 面向对象的含义很广,因为“对象”一词可以在不同领域有不同的解释,面向对象的可以表示为面向对象法=对象+类+继承+消息通信面向对象分析是建立在信息模拟和面向对象程序设计语言的概念基础之上的。作为一个比较全面的方法,面向对象分析由5个步骤组成:①确定类和对象;②识别结构;③识别主题;④定义属性;⑤定义方法。现在已有了一些面向对象分析的CASE工具支持OOA,以加速OOA的自动化和标准化。7 |" d) y5 _0 u; [7 ^9 h
7.面向对象设计和面向对象实现
G0 w, I6 F0 k' S8 C/ a从面向对象分析到面向对象设计是一个逐步扩充的细分过程,同传统的实体关系模型为基础的系统分析和设计类似,面向对象的设计使用的是面向对象的概念模型。在面向对象的概念模型中以面向对象方法中的基本概念为基础。最后,使用面向对象的语言,对设计的概念模型加以实现。限于篇幅不再详细讨论。
. r& y; M% x+ g1 `, E- s. C, k8.面向对象数据库+ ^7 }! g2 v* o/ ? i1 Z* I* N
面向对象方法和数据技术的结合,产生了面向对象数据库(Object Oriented Database———OODB)。OODB已成为数据库的发展方向之一,无论在理论上还是在实践上都越来越引起人们的注目。到80年代,关系数据库已经发展成熟悉,但新的应用领域,为数据库的进一步发展提出了新的需求。 |