【6】c++设计模式——>UML表示类之间的依赖关系

依赖(Dependency)关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系,大多数情况下依赖关系体现在某个类的方法使用另一个类的对象作为参数。

在UML中,依赖关系用带箭头的虚线表示由依赖的一方指向被依赖的一方,下面举两个依赖关系的例子:

驾驶员(Driver)开车,需要将车(Car)对象作为参数传递给 Driver 类的drive()方法。

cpp 复制代码
class Car 
{ 
public: 
    void move() {}
}; 

class Driver 
{
public: 
    void drive(Car car) 
    { 
        car.move(); 
    } 
};

树木(Tree)的生长,需要将空气(Air)、水(Water)、土壤(Soil)对象作为参数传递给 Tree 类的 grow()方法。树木依赖空气,水土壤,树木是依赖,空气是被依赖,被树木依赖。

cpp 复制代码
class Water
{
};

class Air
{
};

class Soil
{
};

class Tree
{
public:
    void grow(Water w, Air a, Soil s) 
    {
        cout << "借助 w 中的水分, s 中的养分和 a 中的二氧化碳, 我就可以茁壮成长了";
    }
};

依赖关系通常通过三种方式来实现:

1.将一个类的对象作为另一个类中方法的参数

2.在一个类的方法中将另一个类的对象作为其对象的局部变量

3.在一个类的方法中调用另一个类的静态方法

类之间的关系强弱顺序是这样的:继承(泛化) > 组合 > 聚合 > 关联 > 依赖。

相关推荐
szarron2 分钟前
HTOOL‑SA12 + HT06 近场探头组合实操|手持设备工位 EMI 预兼容排查完整流程
运维·服务器·开发语言·网络·射频工程·频谱仪
菜鸟~noob2333 分钟前
【电子战】第07篇:多普勒测向【含matlab代码】
android·开发语言·matlab
6Hzlia5 分钟前
【Classic 150 刷题计划】 LeetCode 274. H 指数 | C++ 二分答案法 (单调性降维打击)
c++·算法·leetcode
Wang's Blog6 分钟前
Java框架快速入门: Spring Security+OAuth2之跨域处理
java·开发语言·spring
雪芽蓝域zzs6 分钟前
第四十二节:全局字典封装(后端字典,下拉选择复用)
开发语言·前端·javascript
老王爱玩车11 分钟前
第2讲:C语言数据类型和变量
c语言·开发语言
菜鸟~noob23326 分钟前
【电子战】第12篇:TDOA 定位——双曲线与等时差线【含matlab代码】
开发语言·matlab
零依赖极客32 分钟前
Day 9·1 KV 也量化——q8 KV 把缓存与 decode 带宽压到一半
c语言·开发语言·arm开发·人工智能·缓存·矩阵
CoderYanger38 分钟前
Java EE 进阶:2.3 JavaScript
java·开发语言·前端·javascript·css·职场和发展·java-ee