Ассоциации между классами с агрегацией - PullRequest
0 голосов
/ 06 января 2019

Мне нужно создать диаграмму классов UML, и я не уверен, правильно ли я это сделал.

enter image description here Я покажу вам на примере. Таким образом, ClassA имеет экземпляр методов вызова ClassB и ClassA из ClassC, которые принимают в качестве атрибутов переменные из ClassA и ClassB. Должен ли я подключить также ClassC с ClassB? Должна ли быть направлена ​​связь между ClassA и ClassB? Реализация кода ниже:

ClassB {
    constructor() {
        this.str1 = "Hello";
    }
}

ClassA {
    constructor() {
        this.str2 = "World";
        this.objB = new ClassB();
    }
    funA() {
        let objC = new ClassC();
        objC.function1(this.objB.str1);
        objC.function2(this.str2);
    }
}

ClassC {
    constructor() {}
    function1(stringFromB) {
        console.log(stringFromB);
    }
    function2(stringFromA) {
        console.log(stringFromA);
    }
}

let objA = new ClassA();
objA.funA();

Спасибо за любую помощь:)

1 Ответ

0 голосов
/ 06 января 2019

Составная агрегация - это время жизни объектов. В вашем коде есть примечание, показывающее необходимость этого.

enter image description here

(Нет. Я не знаю правил области видимости Java, поэтому я взял this.objB как частное.) Есть одна ассоциация, которая является собственностью ClassA (показана точкой) с именем objB. Зависимость от ClassC происходит от (временно используемой) objC, которая не находится на уровне класса. Можно было бы обсудить, подойдет ли ассоциация (честно говоря, мне пришлось глубже изучить спецификации), но в любом случае зависимость не является неправильной (поскольку она слабее ассоциации и определенно A зависит от B ).

Другой Н.Б. число рейнольдса Ваш CD: Функции в коде принимают строки, а не объекты, и одна из них пропускает завершающий 1.

...