Хоча документи Java вказують, що слабкі посилання в основному стосуються канонізації відображень, в Інтернеті ви знайдете багатьох , багатьох , багатьох людей, які стверджують, що WeakHashMap ідеально підходить для зберігання метаданих об’єктів протягом свого життя. Однак ніхто не заважає зробити зрозумілий І відповідний приклад.
Використання WeakHashMap для додавання об'єкту якихось властивостей або збереження звуків метаданих для мене, як довільне рішення, засноване на волі просто використовувати прокляту річ. Іншими словами - погана конструкція . Я розумію, що існують ситуації, коли успадкування може бути недоступним (підсумкові класи, інтерфейси), але як бути зі складом? Я не можу придумати жодного прикладу, коли композиція не була б варіантом. І, звичайно, кращий, тому що він спирається на усталений принцип, а не на "мовну вигадку".
Отже, чи існує ситуація, коли було б краще використовувати слабкі посилання замість простого складу? Якщо ні, то чому всі в Інтернеті, здається, помиляються?