gpt4 book ai didi

javascript - 编程最佳实践 - 循环对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:40:28 25 4
gpt4 key购买 nike

这似乎是一个宽泛的问题,但当我在我的一个项目中优化代码时,它让我印象深刻。

假设我有一个我需要更新的对象数组。

假设每个对象自身都有一个方法计算一些应用程序状态 (在对象循环结束前一直保持不变).

for *every* object in *array*
object.update();

inside object:
... compute.something();

这导致了一个过程,其中每个对象都为自己“计算”这个值并应用它。

所以我坐在那里想,如果我得到一个包含所有基本计算相同事物的项目的列表并在循环之前计算它并将结果插入循环本身会怎么样?

结果类似

computeData

for *every* object in *array*
object.update(computeData);

inside object:
apply(computedData);

使用这种结构,我真的不必对所有内容都进行 n 次计算,其中 n 是对象数组的大小,而只需一次

我以前从未听说过这种方法,想问一下这是否是正在使用/教授/应用的东西,还是不?我知道我没有找到任何金子,只是想知道你的意见,如果我将来从一开始就关注这个结构......?

最佳答案

我不是很清楚你的问题,但看起来可能是三种设计模式:

1 - 内存

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

频繁调用的函数的结果在第一次使用该输入调用时被缓存(对于给定的输入)。这意味着重复调用意味着不是每次都重新做同样的工作。

2 - 观察者模式

https://en.wikipedia.org/wiki/Observer_pattern

可以注册对象以监听另一个对象中的更改/触发器。在这种情况下,您的每个对象数组都可以注册到中央“循环”对象,并在触发“我希望更新数据”操作时发回值。

3 - 回调模式

https://en.wikipedia.org/wiki/Callback_(computer_programming)

更一般地说,独立对象能够在中央对象请求时返回值的想法。

如果您有这些想法,我建议您继续阅读 Design Patterns .经典"Gang of Four"这本书现在已经很老了,但思想仍然有效。

关于javascript - 编程最佳实践 - 循环对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46666152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com