用于替换缓存的设计模式

时间:2013-04-24 16:48:26

标签: c# oop design-patterns

在我们的程序中,我们将大量数据存储在缓存中。缓存是一个字典。由于大量数据是内存中的,我们计划使用数据库而不是字典。因此,字典中曾经的所有数据都将被移动到数据库中的表中。现在的问题是,字典缓存已在项目的许多地方使用。请建议我一个设计模式,用最少的代码更改有效地用数据库替换字典缓存。

缓存将类似于Dictionary(字符串,MyBusinessObject)。字典键将是“Id”。 MyBusinessObject将拥有其属性中的数据。例如,myBusinessObject.CustomerName,myBusinessObject.CustomerAge。在我的整个项目中,各种模块将在字典中搜索Id(密钥)。

2 个答案:

答案 0 :(得分:9)

Dictionary实现IDictionary<TKey, TValue>您应该在数据库上创建一个也实现IDictionary<TKey, TValue>的外观,然后确保不再使用具体的字典。最后,您需要为新抽象创建一个工厂,这将允许您将其替换为模拟测试。

答案 1 :(得分:3)

您考虑过PersistentDictionary了吗?它是基于ESENT数据库引擎构建的开源Dictionary。您可以使用最多可存储16TB的Dictionary