我有一个课程项目,是Scala中生命游戏的重构。它是
简单纯粹的Scala + SBT项目。我的任务之一是提取游戏逻辑
来自GameEngine
课程,并且更容易添加新规则,如Conway,Highlife或
这样的事情。我把GameEngine
变成了一个抽象类并且完成了所有
从它继承的类实现了决定何时应该死亡的方法
重生。当我的游戏开始时,我有这个代码:
def addGameMode(gameMode:GameEngine) {
modes += gameMode
}
addGameMode(ConwayEngine)
addGameMode(EasyMode)
addGameMode(HighLife)
addGameMode(Seeds)
我的依赖于GameEngine
规则的类将其视为一个
构造参数。当我需要更改游戏规则时,我会使用setter方法
以下代码:
class GameView( var gameEngine: GameEngine, modes: MutableList[GameEngine] ) extends JFXApp {
...
def setGameEngine(g: GameEngine) {
gameEngine = g
}
...
}
我不知道这种方法是否正确,但从我所学到的,依赖性
注射是正确的。但是,对我的老师来说,事实并非如此。我的问题就开始了。
根据他的说法,依赖项应该在.xml文件中声明并进行处理
一个外部的lib。他建议Spring
,但我不知道应该如何实施
使用Web框架在简单的Scala + SBT项目中注入依赖项。
希望我可以忽略这个建议使用Spring
并使用另一个lib。
我发现MacWire但我不知道如何使用它
解决这个问题。有人能帮助我吗?