虽然这个问题主要涉及Ehcache,但它实际上适用于缓存框架(和普通的缓存)。
EhCache允许您创建一个单例CacheManager
来管理应用程序中的所有Caches
,或者允许您创建“实例”CacheManager
,就像它听起来的那样:在您的应用程序中使用多个管理器。
每种方法的优缺点是什么?乍一看起来,只有一个单例管理器会更加清洁。
我能想到的唯一的原因是需要多个实例管理器的事实是,位于CacheManager
内的所有缓存必须共享相同的配置:相同的大小、使用策略、容量等。因此,如果您想要多个缓存,每个都配置不同,单例CacheManager
将无法为每个缓存提供不同的缓存配置。
这是确定单例与实例管理器的唯一标准吗?如果不是,还有哪些考虑因素?是否与其中任何一个相关的性能成本明显?谢谢!