Комментарии 7
Если я правильно помню weak ссылки работали и раньше) начиная примерно с xe4 или xe5
Всё верно, но поддержка weak ссылок была доступна только в мобильном компиляторе, я проверял этот же код в XE 10 Seatle, ловим такую же утечку.
Очень нужная фича, Delphi потихоньку приближается к согласованному состоянию. Интерфейсные типы появились очень давно, а слабые ссылки только сейчас. У нас очень крупный проект написан на интерфейсах и слабых ссылок очень не хватало!
Радует, что Delphi развивается. А по поводу weak ссылок — это вообще нормальная практика их использовать? Я имею в виду, не является ли это антипаттерном, использовать объекты, ссылающиеся друг на друга?
Иногда просто нельзя по другому реализовать, сама VCL/FMX использует перекрестные ссылки
Классический паттерн — издатель/подписчик без слабых ссылок в большинстве случаев не сделать. Издатель должен держать ссылку на подписчика, чтобы рассылать ему уведомления, а подписчик должен держать ссылку на издателя, чтобы он мог отписаться от рассылки.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Слабые[weak] ссылки в новой версии Delphi