面向对象分析与设计的原则

面向对象分析与设计的原则


发布日期: 2017-01-20 更新日期: 2017-01-20 编辑:xuzhiping 浏览次数: 3746

标签:

摘要: 面向对象GIS是在面向对象技术的基础上发展而来,如前所述,理解面向对象,必须理解几个关键术语,如对象、消息、方法,类、子类、实例,抽象、继承、封装和多态。以地图模型为基础的GIS,是从概念模型到逻辑模型转换上的改进。面向对象思想则推进GIS发展表现在另一个抽象...

面向对象GIS是在面向对象技术的基础上发展而来,如前所述,理解面向对象,必须理解几个关键术语,如对象、消息、方法,类、子类、实例,抽象、继承、封装和多态。以地图模型为基础的GIS,是从概念模型到逻辑模型转换上的改进。面向对象思想则推进GIS发展表现在另一个抽象层次上,是从我们怎样看待这个世界的外部模型,到怎样表示和关联对象的概念模型。与以地图模型为基础的GIS比较,面向对象GIS优势是易于扩充。

系统分析员可以利用一些通用原则处理系统分析和设计的复杂性。抽象、封装或信息隐藏、模块化和层次,是面向对象的分析、设计和编程中最基本的、可行的原则。

(一)抽象

抽象是解决复杂性的一种基本方法。抽象是一种突出重点、去除细节的总结。抽象定义为“系统的一种简化的描述或规格说明,强调系统的某些细节或特性而忽略另一些细节或特性。一个好的抽象就是强调重要的细节而忽略非实质性的细节”。GradyBooch的定义是“抽象表示一个对象与其他所有对象相区别的基本特征”。抽象聚焦于对象外观,可用来区分对象的基本行为和它的实现。为给定问题域指定正确的抽象集,是面向对象设计的核心问题。

(二)封装或信息隐藏

抽象和封装是两个互补的概念:抽象着重于对象的可观察行为,而封装着重于隐藏这种行为的实现细节,通常,对象的结构和方法实现都是隐藏的。为了抽象能起作用,实现必须封装。在实际中,每个类必须有两部分:接口和实现。类的接口描述它的外观,类的实现包含抽象的表示法及得到所需行为的细节操作。GradyBooch定义封装为:划分抽象的结构和行为的过程,封装用来分离抽象的接口及其实现。

(三)模块化

模块化是指将程序分成若干模块。这些模块可独立编译,但与其他模块又有联系。C/C++中将模块接口放在后缀为.h的文件中,模块的实现放在后缀名为.c的文件中。为给定的问题确定合适的模块集几乎与确定恰当的抽象集一样困难。模块充当一个类和对象的物理容器。系统开发人员可以将在逻辑上相关的类和对象放到同一个模块中,只显示出那些其他模块绝对要看到的要素。

(四)层次

层次是抽象的排列或排序。抽象可以帮助我们抽取实体或问题的基本特征,封装隐藏了抽象的内部视图,模块化为我们提供一种方法来聚集相关的抽象,但这些仍不够。一个抽象集合通常构成一个层次,通过识别设计中的这些层次,可以大大简化对问题的理解。继承是面向对象系统的最基本要素,代表了一个抽象的层次。从语义上讲,继承表明了“是一个”的关系,例如,熊“是一种”哺乳动物,房子是“是一种”有形资产。因此继承表示一种概括/具体层次。

关注公众号
获取免费资源

随机推荐


Copyright © Since 2014. 开源地理空间基金会中文分会 吉ICP备05002032号

Powered by TorCMS

OSGeo 中国中心 邮件列表

问题讨论 : 要订阅或者退订列表,请点击 订阅

发言 : 请写信给: osgeo-china@lists.osgeo.org