类图(Class Diagram)模型


类图(Class Diagram)模型

类图(Class Diagram)模型是最基本、最重要,并且也是最常使用的UML模型。

图 1-1 UML类图示例

1. UML类映射为C++类时,可遵循如下所示的规则:
A. 可将UML类中的"+""-"''#"修饰符分别映射为C++类中的publicprivateprotected关键字。
B. UML类中带有下划线的特性或者操作映射为C++类中的静态数据成语或者静态成员函数。
C. UML类映射而成的C++类中应该具有默认的构造函数和析构函数。
D. 如果UML中的操作的特性表中具有关键字abstract或者操作名用斜体表示,那么就应该将该操作映射为C++类中的纯虚成员函数, 相应的析构函数应为虚析构函数 (否则,如果基类指针指向了派生类对象,在执行delete操作时,派生类的析构函数将不会被调用)
E. 如果UML类中操作的特性表中query特性为真,则应该将该方法映射为C++类中的const成员函数。
F. 如果UML类中操作的的特性表中update属性为真,则应该将该方法映射为C++类中的非const成员函数。
G. 如果UML类的名字以斜体表示或者类名后的特性表中具有abstract关键字,则应将相应的构造函数的可见性设置为protected
2. 关联关系的实现
(相当于数据库ER图中 1对1,1n,nn ……)
3. 聚合与组合关系的实现
聚合与组合关系都是特殊的关联关系。在用 C++ 语言实现聚合关系时,采用嵌入指针方式;实现组合关系时,采用嵌入对象方式。
聚合表示一种弱的拥有关系,体现的是 A 对象可以保护 B 对象,但 B 对象不是 A 对象的一部分。
组合是一种强的拥有关系,体现了严格的部分和整体的拥有关系,部分和整体的生命周期一样。
4. 泛化关系的实现
UML 规范中的泛化关系在 C++ 中是通过继承机制实现的。
5. 接口类和包的实现
在用 C++ 语言实现 UML 模型中的接口时,需要将其转换为只有函数原型的抽象类,也就是要将接口中声明的所有操作都转换为可见性为 public 的纯虚函数,而将实现接口的类转换为从接口继承的子类。
C++ 中,可以使用命名空间来描述包, using 语句实现包之间的依赖关系。

注:图片摘自《大话设计模式》(程杰著),文字摘自《UML面向对象设计与分析》(牛利平等著)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值