2012-02-13 132 views
2

什么是你正式调用的唯一目的是读取和缓存(而不是写入)持久性存储实体(即数据库表)的对象?我的意思是,这可能是一个本地化的语言字符串的读者,我可以用这样的这是什么名称?

例子:

Language.Get("hello_world", "en_US") // returns "Hello, world" 

或配置阅读器,就像这样:

Config.Get("max_connections") // returns 3000 

我想原因知道是因为我发现自己写了很多这样的对象,并想正确分类。 “模型”对我来说似乎并不合适,因为通常一个模型不会编写操作和更复杂的业务逻辑。在这种情况下,对象只能读取和缓存。

+3

你可能会把它叫做缓存。 :-) – templatetypedef 2012-02-13 17:39:11

+0

正如你所说 - “它的唯一目的是读取和CACHE”..所以称它为缓存! :)“在计算机工程中,缓存是透明地存储数据的组件,以便将来可以更快地处理对该数据的请求。” (维基百科) – stmax 2012-02-13 20:56:50

回答

0

记忆是“记住”潜在的昂贵(但不变)计算结果的行为,因此它不需要重新计算。这是实现LazyEvaluation的一种方式,也是LazyFunctionalLanguage的一个关键特性,它隐式完成。此外,memoization不需要任何“搜索”,通常 - 每个memoized表达式都带有它的“备忘录”,所以很容易确定表达式是否需要评估。

缓存是指“记住”昂贵的计算或I/O操作。缓存可以是只读的(因为被缓存的内容不能被修改),或者是可读写的(在这种情况下CacheCoherency成为一个问题)。此外,缓存中的项目集可能比可供使用的项目集小得多(这是内存系统缓存的情况),在这种情况下,缓存分配和替换问题变得重要。