【发布时间】:2017-01-20 20:45:03
【问题描述】:
模拟字段的重复方法
我正在制作一个包含大量资源的小游戏,我正在考虑使用一个名为“ResourceManager”的类来处理对这些成员变量所需的操作。不过,我意识到的是,我实现它的方式会导致很多类似的代码,这让我很烦。
public class ResourceManager{
private float resourceA = 0;
private float resourceB = 0;
private float resourceC = 0;
public enum ResouceType{
A,B,C
}
public void add(ResourceType type,float amount){
switch(type){
case ResourceType.A: resourceA += amount;
break;
case ResourceType.B: resourceB += amount;
break;
case ResourceType.C: resourceC += amount;
break;
}
}
}
这是我拥有的代码的一部分,这不会打扰我,但我还在减法、乘法、除法中添加。 . .现在我有了这个 switch 语句,它只确定每个方法中要更改的成员变量。由于这感觉就像我在所有方法中使用的一个功能,我想知道是否有办法将其隔离到它自己的方法中,而不是简单地调用它。
我想办法解决这个问题,但我总是让事情变得更加困难,或者最终导致重复的代码分布在多个类中,这并不是真正的改进。提前非常感谢!
【问题讨论】:
-
听起来你真的想要一个
Map<ResourceType, Float>而不是三个变量。 -
还没有想到。比我只使用地图中的 ResourceType 查找 Float 并更改它。谢谢!我马上试试!
标签: java refactoring