Clojure中的金融账户模式实施:参考或代理?
-
08-07-2019 - |
解决方案
Clojure中的所有可变对象都旨在为您提供一致的视图,了解事物随时间的变化。如果您有多个对象相互更改,那么您需要创建一个包含所有对象的时间轴,并且refs仅用于此目的。
您可能还对可以添加到refs以强制执行事务不变量的观察者(add-watch reference key fn)
的概念感兴趣。
不隶属于 StackOverflow
解决方案
Clojure中的所有可变对象都旨在为您提供一致的视图,了解事物随时间的变化。如果您有多个对象相互更改,那么您需要创建一个包含所有对象的时间轴,并且refs仅用于此目的。
您可能还对可以添加到refs以强制执行事务不变量的观察者(add-watch reference key fn)
的概念感兴趣。