2012-02-13 191 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成爲一個問題)。此外,緩存中的項目集可能比可供使用的項目集小得多(這是內存系統緩存的情況),在這種情況下,緩存分配和替換問題變得重要。