有关设计模式的问题。

我有一个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类)的用户更简单,更安全,而不是减少类的内部工作。

根据上下文的使用方式,只能将其存储在DataCache中,并且DataManager可以使用getter访问它。

08-19 07:17