备忘录模式(Memento Pattern)
|
1 2 3 |
定义:保存一个对象的某个状态,以便在适当的时候恢复对象。 目的:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 场景:数据缓存。 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
function createPageCache() { const cache = new Map() return async function getPageData(page, loader) { if (cache.has(page)) { return cache.get(page) } const data = await loader(page) cache.set(page, data) return data } } const getPageData = createPageCache() // 使用: async function fetchPageData(page) { console.log(`请求第 ${page} 页数据`) return { page, list: ['数据1', '数据2'] } } const data1 = await getPageData(1, fetchPageData) const data2 = await getPageData(1, fetchPageData) console.log(data1) console.log(data2) |

