OOAD 学习笔记 四

来源:互联网 发布:mysql relay log 作用 编辑:程序博客网 时间:2024/06/10 00:20

对象:具有明确语义边界并封装了状态和行为的实体,由一组属性和作用在这组属性的一组操作构成。它是构成软件系统的一个基本单位。

类:对具有相同属性和操作的一组对象的统一抽象描述,对象是类的实体。

对象和类的表示法:38页,图4-1 , 4-2

抽象类的表示法:用斜体类名,或类名后加上{abstract}


与属性相关的概念:

属性是用来描述对象性质的一个数据项。

在类和对象中,每个属性都有唯一的名字。

类属性(静态属性):若类的一个属性对所有对象来说,值都是相同的。

属性的表示法:45页,图4-4

属性可见性的表示法:+(public),#(protected),-(private),~(default,即包内可见)


与操作相关的概念:

操作是类的对象被要求提供的服务的规约。

类操作(静态方法):仅用于操作类属性的操作,不能操作对象属性。

对象操作:简称操作,不属于类操作的操作都是对象操作。

抽象操作:一个类中存在着没有实现,也没打算在该类中实现的操作,称该操作为抽象操作。

特征标记:相当于方法头(如:public void function(String str))

抽象操作的表示:用斜体的特征标记来表示,或者特征标记后加上{abstract}

操作可见性的表示法:同上。


类之间的3种关系:继承,关联,(聚合),依赖


继承:

继承表示的是一般类和特殊类之间的关系。

一般类和特殊类的关系:50页,图4-6

UML中把继承称为泛化。

继承的数学性质:非对称性和传递性。

继承可进一步分为:单继承和多继承。

继承表示法:51页,图4-7


关联:

静态关系:一个事物通过记录另一个事物的标识以访问对方所形成的关系(如:司机和他的汽车,学生和他的老师等)

动态关系:对象之间在行为和操作上的依赖关系。

关联主要表达的是对象的静态关系。

关联:一个或一组类的对象集合的笛卡尔积上的一个子集合(即一个由对象偶尔构成的集合),这种类间关系用于刻画事物间的联系。

二元关联:两个类之间的联系。

一元关联:一个类与自身关联。

关联表示法:58页,图4-18

单向关联表示法:58页,图4-19

可导航:一个类的对象可以直接访问另一个类的对象。

不可导航:只是不能直接访问,不代表不能间接访问。

链:关联的一个实例,用于刻画具体事物间的关系。

多重性:在关联的两端写有表示数量约束的数字或符号。

关联角色:在关联的每个端点上可以有一个名字,表示在该关联中该端点连接的类所扮演的角色,这个名字称之为关联角色。

如果在关联中使用角色名,则可以不用给关联命名。

关联类:兼有关联和类的双重特征的建模元素,既可以把关联类看成具有类特征的关联,也可以看成是具有关联特征的类。

关联类的表示法:62页,图4-33

N元关联:两个以上的类之间的关联。

N元关联表示法:64页,图4-38

限定符:限定符的值用于确定该关联的另一端类的对象,即给定类的一个对象,并指定限定符内的属性值,就能唯一确定另一端类的一个对象或是一组对象。在实际环境中,可以把限定符的属性用来作索引或查询关键字。

限定关联表示法:65页,图4-40

关联示例:66页,图4-41 , 图4-42


聚合:

聚合是表示整体的类和表示部分的类之间的“整体-部分”关系;或是说,一个类的对象,是另一个类对象的组成部分。

在聚合中,把“整体”的类称为聚集(聚合的集合),“部分”的类称为成分。

聚合的数学性质:非对称性,传递性

组合:是聚合的一种形式,一个部分类的对象在一个时刻必须最多属于一个整体类的对象,且整体类的对象管理它的部分类的对象。

组合和聚合的区别:67页,图4-44

把聚合表示成一条一端带有菱形的线段,菱形指向聚集的一端。如果是组合,菱形是黑色的。

聚合组合表示法:68页,图4-45


依赖:

依赖表明一个元素(源元素)的定义或实现依赖于另一个元素(被依赖元素)的实现或定义。

用况图中的包含和扩展,就是依赖。

依赖表示为两个建模元素之间的虚箭线。

依赖表示法:71页,图4-50


接口:

接口的一种含义是一个类对外提供的一组操作(服务);把这组操作组织起来,作为该类的一组接口,并称该类提供了对其接口的实现。

另一种含义是纯粹的,就像Java的接口那样,只给出操作说明,不给出实现。

接口定义了一个契约,在接口两端的类可以自由变更,但是必须遵循这个契约。

一个类可以实现一个或多个接口,这样的接口称为类的供接口;一个或多个类可以使用一个或多个接口,这样的接口称为需接口。

接口表示法:72页,图4-53 , 图4-54 , 图4-55

0 0