Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
class Foo {
public Bar<Baz> field;
}
class Bar<T> { /* ... */ }
class Baz { /* ... */ }
как должна выглядеть диаграмма?
Но возник такой вопрос: в ООП встречается такое понятие как «интерфейс». Википедия дала слишком абстрактный ответ на вопрос «что это». Глубоко пока не гуглил. Может кто-то тут на пальцах объяснит что подразумевается под понятием «интерфейс» в ООП. А лучше приведет пример! Буду очень признателен!
… отдел включает в себя одного или более сотрудников и таким образом их агрегирует. На предприятии могут быть сотрудники, которые не принадлежат ни одному отделу, например, директор предприятия.
Тут явная архитектурная ошибка: PastPosition — это класс, и Employee содержит список этих pastPositions и тут же рядом этот же PastPosition (правильно просто Position) раскрыт в переменные-поля: position (правильно currentPosition) и department.
На мой взгляд логично содержать единый список positions, где positions[0] — это текущая должность, а getCurrentPosition() возвращает из списка понятно что. Будет красивее и яснее, more clear.
Отношение обобщения — это наследование
Нет. Есть более современные traits/type classes, extention methods, mixins.
И вообще, прекратите мыслить старым ООП.
Отношения классов — от UML к коду