Я столкнулся с постоянной проблемой, отличающей делегирование, состав и агрегацию друг от друга, и выявление случаев, когда их лучше всего использовать один над другим.
Я консультировался с java OO аналитическим и дизайнерским книгой, но моя путаница все еще остается. Главное объяснение:
делегирование. Когда мой объект использует другую функциональность объекта, не меняя ее.
состав. Мой объект состоит из других объектов, которые, в свою очередь, не могут существовать после уничтожения моего объекта - сбор мусора.
агрегация. Мой объект состоит из других объектов, которые могут жить даже после уничтожения моего объекта.
Возможно ли иметь несколько простых примеров, демонстрирующих каждый случай, и рассуждения позади них? Как еще можно продемонстрировать эти примеры, кроме моего объекта, просто имея ссылку на другой объект (ы)?