目录
UML类图:
在软件工程中起着至关重要的作用。它是一种静态的结构图,主要用来描述系统的类的集合、类的属性以及类之间的关系。
对于类的开发应该是 先类图后编码
一 基础属性:
1.1 UML示例:
1.2 UML语法规范
UML类图,主要包括三部分: 类名,属性,行为
+ # - 分别代表彼此的作用域(public,protected,private)
static成员属性和方法需要加下划线____
如果是存在纯虚函数类名和虚函数需要斜体,返回值 = 0;
属性: 作用域 属性命名:属性类型 = 默认值(如果没有不填) 图中初始值UML画成了:应该为=
方法: 作用域 方法命名(参数名:参数类型,.....):返回值类型
1.3 UML生成对应代码
根据UML类语法进行编码
class MyLabel
{
public:
string getClassColor(){return m_sColor;}
void setClassColor(string color){m_sColor = color;}
static void setInHerit(bool isInHerit){m_bInHerit = isInHerit;}
protected:
virtual void setIsEdit(bool isEdit) = 0;
public:
static bool m_bInHerit;
string m_sColor;
protected:
bool m_bisEdit;
private:
string m_className = "MyLabel";
};
二 类关系
2.1 继承关系
空心三角形表示: 三角指向基类
在有些说法中也叫泛化
2.2 关联关系
关联是类与类之间最常见的一种关系,通常将一个类的对象作为另一个类的成员变量。关联关系有三种,单向关联、双向关联、自关联
2.2.1 单项关联
实线三角箭头
2.2.2 双向关联
实线
2.2.3 自关联
实线三角箭头
2.3 聚合关系
空心菱形箭头(指向整体)
聚合是一种弱的拥有关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。例如,轮胎和汽车的关系,轮胎是汽车的一部分,但它也可以独立存在,不属于汽车时,它的属性和行为都不会发生变化。
2.4 组合
组合和聚合很简单的一个区别就行,如果这个类在析构的时候也删除了所拥有的对象那么就一定是组合关系反之则为聚合
实心菱形箭头(指向整体)
是一种强的“拥有”关系,体现了严格的部分和整体的关系,部分和整体的生命周期一样。例如,公司和部门的关系,部门是公司的一部分,它不能独立存在,必须依赖于公司。
2.5 依赖
带箭头的虚线(指向被依赖的)
一个类需要使用另一个类的对象作为参数,或者一个类使用另一个类的对象作为它的数据成员,或者一个类向另一个类发送消息等情况,都可以被认为是依赖关系。
三 类关系强弱
继承(泛化) > 组合 > 聚合 > 关联 > 依赖
在比较复杂的类关系中只需要描述出关系最强的就可以。