首页 > 解决方案 > 用于 A 类和 C 类的 UML 关系,其中 C 类是 B 类的成员,A 类取决于 B 类

问题描述

这是一个代码示例。

class C;

/* B is a container of class C */
class B
{
public:
    size_t size() const;

    C const& operator[](size_t index) const {
        return elements[index];
    }

    std::vector <C> elements;
}


class D
{
public:
    D(C const& c);
}

/* A is a container of class D */
class A
{
public:
    A(B const& b) {

        // TO construct Class D instance, A needs to pass reference to class C 
        // to class D's constructor.
        for (int i = 0; i < b.size(); ++i) {
            elements.emplace_back(b[i]);
        }
    }
    std::vector <D> elements;
}

这里,

  1. 作文 D

  2. B 成分 C

  3. A 依赖 B

  4. 依赖 C

在 A 和 C 之间使用哪种 UML 关系?

从 A 到 C 是单向关联吗?

标签: oopuml

解决方案


这就是您所说的(由于我的 Cxx 知识有限,因此对您的代码不太确定):

在此处输入图像描述

正如你可以清楚地看到的,A 也依赖于 C,因为它是 B 的成员。但是你不需要用依赖来表达它,因为它很明显。

注意:根据@Ister A的评论不直接依赖,C因为它不使用它。UML 图显示了这一点。这种依赖只是间接的,因为(可能)B需要C正常工作。这就是为什么第一手C放在里面的原因。B但是在这里绘制依赖关系AC错误的。


推荐阅读