Проблема со ссылкой на объект в системе кеширования объектов - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь создать систему кеширования объектов, язык, которым я пользуюсь, является freepascal, но я думаю, что эта проблема возникнет в других языках.

Проблема, с которой я сталкиваюсь, заключается в том, что я удаляю объект из кэша, а на этот объект ссылается другой объект в кэше, поэтому я получу недопустимую ссылку.

Я знаю, что единственный способ - очистить ссылку в оставшемся объекте, когда я собираюсь удалить его из кэша. Когда у меня есть несколько таких перекрестных ссылок в чаше, это не сложно сделать.

Но когда система растет, это становится кошмаром, так как я могу отслеживать объекты, которые ссылаются на тот, который я собираюсь удалить из кэша, и очистить эти мертвые ссылки?

Есть ли какой-нибудь хорошо известный метод для этого, не требующий большого количества поисков в кеше?

Заранее спасибо.

...