当我从C#来到Scala时,我几乎没有使用过着名的DI框架,但是我已经读过它们并且最近已经了解了Scala中的cake pattern。
但是,如链接中所述,蛋糕模式不允许我们控制组件初始化的顺序。
对我而言,这只有在初始化时组件需要彼此时才重要,这看起来有点像设计缺陷:)
需要有序初始化的情况是什么,并且无法通过负责初始化的单独组件上下文来解决?
答案 0 :(得分:2)
在他的演讲“来自BLACK LAGOON的面包店”中,Daniel Spiewak展示了一些解决这个问题的方法。
幻灯片 - > https://dl.dropbox.com/u/1679797/NE%20Scala/Bakery%20from%20the%20Black%20Lagoon.pdf
视频 - > http://www.youtube.com/watch?feature=player_embedded&v=yLbdw06tKPQ
摘自谈话:
您可以使用 lazy val 或 def 而不是val来绕过null-Pointer异常 以可能的僵局为代价。