设计模式:缓存和上下文

有关设计模式的问题。

我有一个DataManager ,它使用对给定上下文有效的缓存DataCache (在我的情况下是日期)。

我的DataCache应该存储缓存的数据有效的上下文,还是只保留DataManager才能知道DataCache何时需要重置? 我觉得把缓存中的上下文也意味着更多的不必要的维护,但也许有一个很好的理由让它在那里。

一个小问题,但想知道最佳实践将在这里。

例:

public class DataManager {
    DateTime context;
    DataCache cache;
}

public class DataCache {
    Dictionary dict;
}

要么

public class DataManager {
    DateTime context;
    DataCache cache;
}

public class DataCache {
    DateTime context;  // note that we store the context here as well
    Dictionary dict;
}

如果DataCache可以在内部使用上下文来知道它是无效的或重置自己或其他任何东西,它应该存储它。 这里的设计重点是让一个类的用户(这里是DataCache类)更简单,更安全,而不是减少类的内部工作。

根据上下文的使用方式,它只能存储在DataCacheDataManager可以通过getter访问它。


缓存有责任在数据过期时使数据无效,因此理想情况下数据应该跟踪上下文并使其无效。 DataManager应该查询缓存,如果缓存没有数据,它应该获取数据并更新缓存。


如果Context不存在没有DataCache情况ContextContext可以是Cache一部分。

您正在创建DataManagerDataCache之间的依赖关系。

用接口IDataCache替换DataCache ,以便提供松耦合。 您可以使用不同的类更改将来的Cache实现。

看看这些SE问题:

什么是依赖注入?

控制反转与依赖注入

链接地址: http://www.djcxy.com/p/82197.html

上一篇: Design Pattern: Cache and Context

下一篇: DI and IOC in spring mvc implementation