Java Spring框架-创建游戏规则引擎的设计模式
我正在寻找一种设计模式或一种使用spring框架的方法,它将允许我根据游戏难度制定一套规则或指令。我会将它们放在spring配置中并使用概要文件,但问题是它们需要在运行时定义。感谢您的帮助 问题是我一直在下面传递这个上下文对象:Java Spring框架-创建游戏规则引擎的设计模式,java,spring,design-patterns,dependency-injection,game-engine,Java,Spring,Design Patterns,Dependency Injection,Game Engine,我正在寻找一种设计模式或一种使用spring框架的方法,它将允许我根据游戏难度制定一套规则或指令。我会将它们放在spring配置中并使用概要文件,但问题是它们需要在运行时定义。感谢您的帮助 问题是我一直在下面传递这个上下文对象: public class Game { private MapMaker mapmaker; @Autowired public(MapMaker mapmaker){ this.mapmaker = mapmaker
public class Game {
private MapMaker mapmaker;
@Autowired
public(MapMaker mapmaker){
this.mapmaker = mapmaker;
}
public void createGame(DifficulyLevel level){
Boss myBoss = getBoss(difficultyLevel);
BossWeapon = getBossWeapon(difficultyLevel);
MapInstructions mapInstructions = getMapConstructionInstructions(diffcultyLevel);
mapmaker.makemap(mapInstructions);
}
}
Easyrules框架非常简单有效,您可以非常轻松地与spring集成。由于它是基于when/then的框架,我认为它将帮助您实现目标
@Rule(name = "dummy rule")
public class DummyRule {
@Condition
public boolean when() {
return true;
}
@Action
public void then(){
System.out.println("Hey, I'm managed by Spring");
}
}
Ref:我喜欢这个想法,但是存储配置的好方法是什么?类似的问题是,如果您以某种方式(如映射)加载配置,这仍然会成为一种气味。不确定如何处理加载配置。比如说地图是通过@Configuration或其他方式加载的。基本上,我只是在寻找一种策略/干净的方式来加载配置,因为我喜欢这个解决方案。因为难度取决于用户,所以您可以为不同的难度创建不同的规则类,并在主类中使用它们。只是一个想法,建议你仔细思考。你会想出解决办法的。