首页 理论教育信息隐藏与模块性-信息系统开发方法与实践教程

信息隐藏与模块性-信息系统开发方法与实践教程

【摘要】:封装是面向对象方法的一个重要原则。封装即信息隐藏,它保证软件具有较好的模块性。可以说封装是所有主流信息系统方法学中的共同特征,它对于提高软件清晰度和可维护性,以及软件的分工有重要的意义。以下从两个方面来理解封装的含义。首先,当设计一个程序的总体结构时,程序的每个成分都应该封装或隐蔽为一个独立的模块。其次,封装表现在对象概念上。对象是一个很好的封装,它把数据和服务封装于一个内在的整体。

封装是面向对象方法的一个重要原则。它是指把属性和操作封进一个对象里,它的内部信息对外界隐藏,不允许外界直接存取对象的属性,只能通过对象提供的有限的接口对对象的属性数据进行操作。对于外界来说,只能知晓对象的外部行为而无法了解对象行为的内部实现细节,这样可以保证对象内部属性数据的安全性。

封装有两层含义:

1)结合性,即把对象的全部属性和方法结合起来,形成一个独立的不可分割的单位。

2)信息隐蔽性,即尽可能隐蔽对象的内部细节,对外形成一个边界,只保留有限的对外接口使之与外部发生联系。

封装即信息隐藏,它保证软件具有较好的模块性。可以说封装是所有主流信息系统方法学中的共同特征,它对于提高软件清晰度和可维护性,以及软件的分工有重要的意义。以下从两个方面来理解封装的含义。

首先,当设计一个程序的总体结构时,程序的每个成分都应该封装或隐蔽为一个独立的模块。定义每一个模块时应主要考虑其实现的功能,而尽可能少地显露其内部处理逻辑。(www.chuimin.cn)

其次,封装表现在对象概念上。对象是一个很好的封装,它把数据和服务封装于一个内在的整体。对象向外提供某种界面(接口),可能包括一组数据(属性)和一组操作(服务),而把内部的实现细节隐藏起来。外部需要该对象时,只需要了解它的界面就可以了,即只能通过特定方式才能使用对象的属性或服务。这样既提供了服务,又保护自己不轻易受外界的影响。

例如,医院的门诊挂号室负责开出挂号单,病人不能进入,只能通过固定的挂号窗口请求服务(接口)。但具体的挂号过程,例如如何进行内部查询、登记及收款对于病人来讲是隐藏的或是不必关心的(内部细节)。这样不管挂号员的工作安排或工作内容如何改变(如增加值班、增加汇总统计),内部操作方式或工具如何改革(如使用票本或电脑打票),病人都不需要了解,只要懂得如何挂号就足够了。

封装的一个例子。

对于类Department实例化的对象,它的成员变量departname是不可见的,只能通过读方法和写方法来操作这个变量,封装通过对成员变量设置访问权限来实现,对于使用者来说,被封装的内容就像包在一个壳中。