什么是记忆化?

3

2
一切皆是设计模式 - Jonas Wilms
1个回答

6
在实际应用中,设计模式通常定义了两个或多个相对复杂的类/对象如何交互。即使Singleton [anti]pattern不仅描述了对象的创建方式,还描述了其他对象如何使用它...相反,记忆化更多地是一种编码技巧。虽然它经常在底层使用某种映射/字典对象,但该对象可以是本地的、特定于语言的对象,而不是一个自定义的、领域特定的或专门优化的手工制作的对象,该对象知道上下文。因此,没有太多的设计实现细节。因此,我认为关键的明显差异是涉及的抽象级别,在设计模式的情况下更高,在记忆化、函数组合、柯里化等编码技术中非常低。不过,这只是一种定义问题。

维基百科:

... 软件设计模式是软件设计中针对特定上下文中常见问题的通用可重用解决方案。

...

设计模式可以被视为计算机编程的结构化方法,介于编程范型和具体算法之间

-- https://en.wikipedia.org/wiki/Software_design_pattern

而,

记忆化是一种主要用于加速计算机程序的优化技术,通过存储昂贵函数调用的结果并在再次出现相同输入时返回缓存的结果。

-- https://en.wikipedia.org/wiki/Memoization


@StefanoVollono 没问题! - Igor Soloydenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接