作爲我正在處理的系統的一部分,我們在調用另一個系統的代理服務器上放置了一層緩存。這個緩存的關鍵是由代理調用中使用的鍵值對組成的。因此,如果使用相同的值調用代理,則將從緩存中檢索項目,而不是從其他服務中檢索項目。這工作並且相當簡單。在代理服務器中使用代理服務器電話之間的關係進行緩存和清除
在清除緩存時它變得更加複雜,因爲當項目發生更改時,哪些項目不清楚哪些項目不明顯。如果對象A包含在節點集B中並且對象A被更改,那麼我們如何知道節點集B是陳舊的。
我們已經通過讓我們調用的服務在對象發生更改時返回節點集來清除問題。然而,這破壞了封裝並增加了一層複雜性,因此我們必須查看響應以查看需要清除的內容。
有沒有更好的/標準的方式來處理這種情況。
我使用觀察者模式在其他地方清除緩存。這種情況很難解決我的問題,但最後一段值得推薦,所以我將其標記爲正確。 – 2009-01-29 10:14:29