以下是Mudlet的基本Java版本,MUD client使用Apache TelnetClient
(不是ssh)。
在很大程度上,作为练习,到目前为止,Context
只有一个策略TargetStrategy
,它会在{{Deque<GameActions>
上返回GameData
依赖 1}}对象值。
这个想法是添加更多策略,更重要的是选择基于游戏数据的策略。例如,在data
...
然后我有点失落。我非常肯定的一件事是没有Context
的{{1}}是荒谬的。例如,如果没有该生物的名字,就无法选择一个生物进行定位!
当前流程,设置策略,然后设置数据,是向后。这是否需要GameData
类型类,它将游戏数据作为参数并返回StrategySelector
?
Context
代码:
Context
当观察到新数据时,那么......什么?控制器代码如下:
package game;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.logging.Logger;
import model.GameAction;
import model.GameData;
public class Context {
private static Logger log = Logger.getLogger(Context.class.getName());
private Strategy strategy;
private GameData gameData = null;
private Context() {
}
public Context(Strategy strategy) {
this.strategy = strategy;
}
public Deque<GameAction> executeStrategy() {
log.info(strategy.toString());
return this.strategy.execute(gameData);
}
public void setGameData(GameData gameData) {
this.gameData = gameData;
}
}
答案 0 :(得分:0)
我对此并不满意:
package game;
import model.GameData;
public class RulesForStrategy {
private Context context = null;
private GameData gameData = null;
private RulesForStrategy() {
}
public RulesForStrategy(GameData gameData) {
this.gameData = gameData;
}
public Context getContext() {
context = new Context(new TargetStrategy());
context.setGameData(gameData);
return context;
}
}
因为它没有解决根本问题,所以不存在没有数据的上下文!
但是,我想它会起作用......?