在哪里决定应该从缓存中逐出什么项目?
Where to decide what item should be evicted from cache?
当缓存的大小达到容量时,决定应该驱逐什么的函数应该位于缓存 class 中,还是应该作为参数传递给缓存 class是初始化吗?
好问题。如果应用单一职责原则,注入驱逐逻辑是有意义的。所以缓存对象负责缓存,注入的驱逐function/class负责驱逐逻辑。这样您就可以通过多种逐出策略重用缓存。
当缓存的大小达到容量时,决定应该驱逐什么的函数应该位于缓存 class 中,还是应该作为参数传递给缓存 class是初始化吗?
好问题。如果应用单一职责原则,注入驱逐逻辑是有意义的。所以缓存对象负责缓存,注入的驱逐function/class负责驱逐逻辑。这样您就可以通过多种逐出策略重用缓存。