Хотя в документах Java указано, что слабые ссылки предназначены главным образом для канонизации отображений, вы обнаружите, что многие , многие , многие люди в Интернете заявляют, что WeakHashMap идеально подходит для хранения метаданных объекта в течение его срока службы. Тем не менее, никто не мешает сделать понятный и соответствующий пример.
Использование WeakHashMap, чтобы добавить объекту некоторые свойства или сохранить звуки метаданных для меня, как произвольное решение, основанное на желании просто использовать эту чертову вещь. Другими словами - плохой дизайн . Я понимаю, что существуют ситуации, когда наследование может быть недоступно (конечные классы, интерфейсы), но как насчет композиции? Я не могу вспомнить ни одного примера, где композиция не была бы вариантом. И, конечно, лучше, потому что он основан на устоявшемся принципе, а не на "языковой причуде".
Итак, есть ли ситуация, когда было бы лучше использовать слабые ссылки вместо простой композиции? Если нет, то почему все в Интернете, кажется, ошибаются?