# design-patterns-cpp **Repository Path**: jesson-deng/design-patterns-cpp ## Basic Information - **Project Name**: design-patterns-cpp - **Description**: CPP 实现的设计模式 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-01-27 - **Last Updated**: 2026-01-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # UML 图含义: ## 三角形 + 虚线箭头:表示 依赖关系。 ## 三角形 + 实线箭头:表示 泛化关系(即继承) ## 空心菱形 + 实线箭头:聚合关系 符号:空心菱形 在整体一方,一条实线指向部分一方。箭头是可选的,通常用箭头表示导航方向。 含义:表示一种弱的“拥有”关系。整体对象由部分对象组成,但部分对象可以独立于整体对象而存在。整体不负责部分的生命周期。 核心思想: “has-a”, 并且是 “可以共享的部分”。 比喻: 汽车 和 轮胎:汽车由轮胎组成,但轮胎可以从一辆车换到另一辆车上。汽车报废了,轮胎还可以用。 公司 和 员工:公司由员工组成,但员工可以离职,加入另一家公司。公司解散了,员工依然存在。 生命周期:整体和部分的生命周期相互独立。 代码表现:通常通过构造方法、Setter方法等将部分对象传入整体对象。 ## 实心菱形 + 实线箭头:组合关系 符号:实心菱形 在整体一方,一条实线指向部分一方。 含义:表示一种强的“拥有”关系,是一种更严格的聚合。部分对象是整体对象不可分割的一部分,不能独立于整体对象而存在。整体对象负责部分对象的创建和销毁。 核心思想: “contains-a”, 并且是 “不可分割的部分”。 比喻: 房子 和 房间:房间是房子的一部分。房子没了,房间也就不复存在了。房间不能脱离房子而独立。 人 和 心脏:心脏是人的一部分,生命体不存在了,心脏作为其器官的功能也就不复存在了。 生命周期:部分对象的生命周期完全依赖于整体对象。整体创建时创建部分,整体销毁时销毁部分。同生共死。 代码表现:整体对象在自己的构造函数内部创建部分对象。