Вопрос о реализации отношений между классами. В PHP
Известно, что каждая агрегация является ассоциацией. Но не каждая ассоциация является совокупностью.
Но в чем разница между ними? С точки зрения реализации.
Конечно, там много похожих вопросов и ответов.
Вот несколько ответов. Но они почти без кода.
Вот некоторые ответы также, с кодом.
Например, ассоциация:
public class Foo {
void Baz(Bar bar) {
}
}
Агрегация:
public class Foo {
private Bar bar;
Foo(Bar bar) {
this.bar = bar;
}
}
Тем не менее, «в этом случае и код ассоциации, и код агрегации одинаковы. В обоих случаях просто указывается« bar », и объект Bar может жить».
Кажется, немного сбивает с толку.
Другой пример. «Агрегация […] является типичным отношением« целое / часть ». Это то же самое, что и ассоциация, за исключением того, что экземпляры не могут иметь отношения циклического агрегирования (т.е. часть не может содержать свое целое)».
Это единственное отличие?
Можете ли вы привести пример в PHP, показывающий разницу?
Спасибо!
Задача ещё не решена.
Других решений пока нет …