Ste*_*ono 2 javascript optimization caching design-patterns memoization
memoization 可以被视为一种设计模式还是仅仅是一种缓存方法?
实际上,设计模式通常定义多个相对复杂的类/对象如何交互。甚至单例 [anti] 模式也不仅描述了对象的创建方式,还描述了其他对象如何使用它......
相反,记忆化更像是一种编码技术。虽然它通常在下面使用某种地图/字典对象,但该对象可以是本地的、特定于语言的对象,而不是自定义的特定于域或了解上下文的专门/优化的手工制作的对象。所以,没有太多的设计实现细节。
因此,IMO 的关键决定性差异是所涉及的抽象级别,在设计模式的情况下更高,而在诸如记忆化、函数组合、柯里化等编码技术中则非常低。不过,这是一个定义问题。
维基百科:
... 软件设计模式是对软件设计中给定上下文中常见问题的通用可重用解决方案。
...
设计模式可以被视为一个结构化的方法来编程的计算机之间的中间一个的电平的编程范例和具体算法。
然而,
记忆化或memoisation是优化技术主要用于通过存储昂贵函数调用的结果,并且当相同的输入再次发生返回高速缓存的结果以加速的计算机程序。