欢迎来到天天文库
浏览记录
ID:48090203
大小:773.00 KB
页数:50页
时间:2020-01-14
《系统设计之面向对象方法.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第八章系统设计之面向对象方法湖南工学院计算机与信息科学系本章要点面向对象程序的基本概念类图对象图包图8.1面向对象系统设计系统分析和设计方法是紧密联系的,如果分析阶段用的是面向对象模型,那么设计阶段也应该用面向对象模型完成。面向对象设计模型在面向对象分析模型和面向对象程序之间架起了一座桥梁。下面将首先了解面向对象程序是如何工作的,然后将讨论如何设计模型以及为了支持面向对象程序设计应该怎样构建模型。8.1面向对象系统设计8.1.1面向对象设计方法概述8.1.2类图8.1.3对象图8.1.4包图1.面向对象程序程序由一系列协同完成某一任务的一组
2、程序对象组成。每个程序对象有程序逻辑和一些必要的属性,这些逻辑和属性封装在一个单元中。对象之间通过互相传递消息来协调工作,他们共同工作来完成所需要执行的功能。8.1.1面向对象设计方法概述2.面向对象程序设计的原则(1)封装:即对象实例化所需的数据与对象包含在一起,对象的逻辑和类包含在一起,它们组成了对象的模板。封装简化了调试,因为数据的任何变化都是由类中的代码所引起的。(2)信息隐藏:它与封装是相关联的,它使一个系统中某一对象的数据域不为其他对象所见。一般来说,在面向对象程序设计中,属性虽不为外界所见,但它的方法是可见的,即能通过一个外部
3、消息来调用这些方法。8.1.1面向对象设计方法概述1.类一群对象(object)享有相同的结构、行为、约束和语义时,称它们是同类(class)的对象。换句话说,定义一个类就相当于描述了一群对象。在类中,使用属性(attribute)表达对象的结构,使用操作(operation)表达对象的行为。如图8-1-1所示,定义员工(worker)类之后,便可以依据此类的描述产生一群对象。这些:Worker对象不仅可以共用类所定义的属性,拥有自己的属性值,还可以共用类所定义的操作,或者共用约束。8.1.2类图8.1.2类图图8-1-1类与对象类采用三格
4、的矩形图示,顶格放置类名称,中格放置属性名称,底格放置操作名称。不过,也可以将类的属性格或操作格隐藏起来,节省空间,如图8-1-2所示。8.1.2类图图8-1-2类图示2.可见性对象具有封装(encapsulation)属性,可以把数据结构和行为细节封装起来,外界无法随意存取。对应UML的类概念,我们会看到类中有属性和操作,同时可以设定这些成员是否能被外界存取的可见性(visibility)。以图8-1-3为例,单笔申购(purchase)封装了一个外界无法存取的私有属性-金额(amount),以及一个外界可以调用的公开操作-计算(calc
5、ulate)。8.1.2类图8.1.2类图图8-1-3私有属性与公开操作目前,UML预设了四种可见性,分别为公开(public)、私有(private)、保护(protected)和包(package)。公开和私有可见性最常见,也最容易懂,如图8-1-3所示,减号(-)为私有可见性,加号(+)为公开可见性。私有可见性滴水不漏,就连子类也无法看见超类的私有成员,这样,其实不利于继承机制。所以,UML设置保护等级的可见性,特别开放子类可以看见超类的保护等级的属性及操作,以便提供更方便的继承机制。保护可见性的符号是#号(#),如图8-1-4所示。
6、8.1.2类图8.1.2类图图8-1-4保护等级的属性最后来谈包可见性。顾名思义,它是为了包而设置的,它的符号是否定号,如图8-1-5所示。同包的类可以看见其他类内部的包属性及操作。所以,从图中可以得知,账户可以看见顾客类的姓名和地址,但是分行(branch)却无法看见,因为分行不是S包的成员。8.1.2类图图8-1-5包等级的属性3.关联关联(association)是对象之间最常见的关系,用来连接有结构关系的对象。请看图8-1-6的例子,关联的图示为实线,实线两端可以连接两个不同的类,如图中的个人(person)类和公司(company
7、)类。不过,关联的两端也可以连接相同的类,如图8-1-6中的个人类。虽然,关联两端连接相同的类,但它的链接(link)其实是连接两个不同的实例(instance),只不过这两个实例诞生自相同的类。8.1.2类图8.1.2类图图8-1-6关联关联不一定是二元关联(binaryassociation),也可以是多元关联(n-aryassociation)。多元关联的图示是连接大菱形的实线,如图8-1-7所示为三元关联(ternaryassociation)。8.1.2类图图8-1-7三元关联有时候会看到带箭头实线,那是在标示导航性(naviga
8、tion),意味着可以由来源端(sourceend)导航到箭头所在处的目标端(targetend)。如图8-1-8所示,:Member对象可以链接到:Password对象,但是反
此文档下载收益归作者所有