有关设计模式的问题。
我有一个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访问它。