UML中各箭头符号解释
创作时间:
作者:
@小白创作中心
UML中各箭头符号解释
引用
CSDN
1.
https://m.blog.csdn.net/u011942101/article/details/145822509
UML(统一建模语言)是面向对象软件工程的事实上的工业标准建模语言。在UML图中,箭头符号被广泛使用以表示类之间的各种关系。本文将详细介绍UML图中常见的六种箭头符号及其含义,帮助读者更好地理解和应用UML建模。
1. 继承(Generalization)
- 符号:空心三角形箭头 + 实线
- 方向:子类 → 父类
在面向对象编程中,继承关系表示一个类(子类)继承了另一个类(父类)的属性和方法。在UML图中,这种关系用空心三角形箭头表示,箭头方向从子类指向父类。
class Animal {};
class Dog : public Animal {}; // Dog → Animal
2. 实现(Realization)
- 符号:空心三角形箭头 + 虚线
- 方向:实现类 → 接口
实现关系表示一个类实现了某个接口。在UML图中,这种关系用空心三角形箭头表示,箭头方向从实现类指向接口,且箭头为虚线。
interface Flyable {
void fly();
}
class Bird implements Flyable {} // Bird → Flyable
3. 关联(Association)
- 符号:普通实线箭头(可带导航性)
- 方向:持有者 → 被引用者
- 代码对应:成员变量持有对象
关联关系表示两个类之间存在某种联系,其中一个类持有另一个类的对象。在UML图中,这种关系用普通实线箭头表示,箭头方向从持有者指向被引用者。
// 双向关联
class Teacher {
Student* students; // 持有学生对象
};
class Student {
Teacher* teacher; // 持有教师对象
};
// 单向关联(导航性)
class Order {
Customer* owner; // Order→Customer单向持有
};
4. 依赖(Dependency)
- 符号:虚线箭头
- 方向:使用者 → 被依赖者
- 代码对应:参数传递、局部变量等临时依赖
依赖关系表示一个类依赖于另一个类,但这种依赖是临时的,通常通过方法参数传递实现。在UML图中,这种关系用虚线箭头表示,箭头方向从使用者指向被依赖者。
class Report {
void print(Formatter fmt) { // 临时依赖Formatter
fmt.format(this);
}
};
代码示例(关联 vs 依赖)
// 关联:成员变量持有对象(长期关系)
class Order {
private:
Customer* customer; // 关联关系
};
// 依赖:临时使用对象(短期关系)
class ReportGenerator {
public:
void generate(Data data) { // 依赖关系
data.process();
}
};
5. 聚合(Aggregation)
- 符号:空心菱形 + 实线箭头
- 方向:整体 → 部分
- 特点:部分可独立存在(弱拥有)
聚合关系表示整体与部分之间的关系,其中部分可以独立存在。在UML图中,这种关系用空心菱形加实线箭头表示,箭头方向从整体指向部分。
class Car {
Wheel* wheels; // 车轮可独立存在
Engine* engine; // 引擎可更换
};
6. 组合(Composition)
- 符号:实心菱形 + 实线箭头
- 方向:整体 → 部分
- 特点:部分与整体同生命周期(强拥有)
组合关系表示整体与部分之间的关系,其中部分不能独立存在,其生命周期与整体相同。在UML图中,这种关系用实心菱形加实线箭头表示,箭头方向从整体指向部分。
class Human {
Heart heart; // 心脏随人体创建/销毁
Brain brain; // 大脑不可独立存在
};
通过以上介绍,读者可以清晰地理解UML图中各类箭头符号的含义及其在面向对象编程中的应用。掌握这些基本概念对于进行系统设计和代码开发具有重要意义。
热门推荐
李振岐书法被中南海收藏:传统与创新的完美融合
中药材市场前景向好
皖南这5个深山隐居旅行地,才是最值得玩的地方
海口气候适应型城市建设入选全国城市治理典型案例
海南岛罕见飘雪:海南全省多地迎来降雪现象解析
唐伯虎:艺术成就与纳妾生活的真实解读
西厢记中的红娘:封建礼教压迫下的女性觉醒
武则天与姐姐共侍唐高宗,揭秘唐朝独特婚姻观
王者荣耀:刘禅六神装VS法术装,谁才是真正的战场主宰?
王者荣耀:孙膑最强出装攻略,轻松carry全场!
王者荣耀新手出装攻略大揭秘!
王者荣耀S34赛季新手出装攻略:免费切换机制详解与实战技巧
炮车2号和陈果1号:最新板栗栽培技术分享
河北迁西板栗丰收背后的土壤密码
迁西板栗:从千年古树到亿元产业的致富密码
卡尔顿大学团队用AI解码鲸鱼语言,发现群体间“方言”差异
AI解码动物语言获新进展,数据不足成研究瓶颈
白芨冬季养护指南:5大要点助其安全过冬
上海千古情景区:四大必看演出,完整游玩攻略
平安夜送礼攻略:让女友感动落泪
平安夜朋友圈文案,秒杀千篇一律的祝福
S35赛季速干流李元芳崛起:发育速度一骑绝尘
王者荣耀S37赛季李元芳上分攻略:从出装到实战技巧
孜然羊肉腌制秘籍:从选材到烹饪的完整指南
“三不哭”:一个传统丧葬礼俗的现代转型
王者荣耀:博学者之怒合成攻略,这些技巧你必须知道!
KPL职业选手教你:博学者之怒的完美合成之道
王者荣耀装备合成攻略:从入门到精通
苏州摄影必去三地:教堂、字墙、湖景全攻略
苏州必打卡:拙政园的园林艺术与太湖的湖光山色