Какое отношение UML использовать для класса A и класса C, где класс C является членом класса B, а класс A зависит от класса B - PullRequest
0 голосов
/ 03 февраля 2020

Вот пример кода.

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. A СОСТАВ D

  2. B СОСТАВ C

  3. A ЗАВИСИМОСТЬ B

  4. D ЗАВИСИМОСТЬ C

Какое отношение UML использовать между A и C?

Это однонаправленное объединение от А до C?

1 Ответ

3 голосов
/ 04 февраля 2020

Это то, что вы говорите (не уверен в вашем коде, так как мои знания Cxx ограничены):

enter image description here

Как вы можете ясно видеть , A зависит также от C, так как он является членом B. Но вам не нужно express это с зависимостью, поскольку это очевидно.

Примечание : Согласно комментарий @ Ister A напрямую не зависит от C, поскольку он не использует его. Диаграмма UML показывает это. Зависимость является только косвенной, поскольку (вероятно) B нуждается в C для правильной работы. Вот почему C был помещен внутрь B из первых рук. Но рисовать зависимость от A до C здесь было бы неправильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...