指向由指向的对象类实现
无箭头,A中有B,B中有A,有箭头的如上图
限定符应用与1对多,限定符端是1,限定符是区别右边集合的主键
关联就是类与类间的关系
xor二选一,账户要么是人要么是单位。用的最多。
聚合:弱,可有可无
组合:强,必须有
泛化由子类指向父类。
price是导出属性。
用例图 鲁棒分析图 顺序图 协作图 类图
一个类必须有明确的职责,并把职责做好
分析类图就是鲁棒分析图,只给名称。
设计分析类图属性方法都给出。
最好的办法:用例 鲁棒 迭代出 设计类
中大型项目用这种方法十分耗费时间。
对象图是整个类图运行时某一时刻的状态的展现,注意对象图中没有方法,只有属性。
- 1
- 2
1.依赖
依赖关系的定义为:对于两个相对独立的对象,当一个对象依赖另一个对象的服务时,这两个对象之间主要体现为依赖关系。一般是A中的某个方法把B的对象作为参数使用或者在A中的某个方法中作为局部变量使用
#include "B.h"
class A
{
void fun(B& b);
};
- 1
- 2
- 3
- 4
- 5
2.关联
对于两个相对独立的对象,当一个对象与另一个对象有种某种对应关系,这两个对象之间为关联关系,比如老师和学生。关联分为单向关联,双向关联和自身关联,实现方法一般是A中包含B的某个指针或者引用。
#include "B.h"
class A
{
B* b;
}
- 1
- 2
- 3
- 4
- 5
3.聚合
聚合是关联关系的一种,耦合度比关联关系强,他们的代码表现是相同的,仅仅是在语义上有所区别:关联关系的对象间是平等关系,而聚合关系的对象之间存在着包容关系,他们之间是“整体-个体”的相互关系。比如:
张三和李四,是关联;而张三和张三的杯子是聚合。
#include "B.h"
class A
{
B* b;
}
- 1
- 2
- 3
- 4
- 5
4.组合
组合是耦合度比聚合还强的一直关系,类和类之间的关系是“整体-部分”的关系,整体和部分具有相同的生命周期,部分不能脱离整体而独立存在,比如:人和身体,身体是人的一部分,不能独立存在。代码实现为A中包含B的成员变量
#include "B.h"
class A
{
B b;
}
- 1
- 2
- 3
- 4
- 5
5.继承
继承是类和类之间存在父子关系,子类继承父类的属性和方法
6.实现
表示一个类实现一个或多个接口的方法。接口定义好操作的集合,由实现类去完成接口的具体操作