我有一个场景,物体在坐标系上移动.我想在我的模型类中使用java.awt.Point,因为它提供了我需要的所有功能(位置表示,转换,距离计算).
但是在我的模型中使用java.awt类感觉有点不对劲.但重写同样的功能也不是答案.
所以我的问题是:在模型类中使用这样的图形相关类是否可以,或者这是不好的风格?在风格不好的情况下,什么是一个很好的替代方法?
我有三种重复代码的方法.前两种方法几乎完全重复.第三个与火灾略有不同,应该绘制更多的信息.
我想删除这个重复的代码,并考虑使用内部类的模板方法模式.这是正确的方法还是有更好的解决方案?
private void drawWaterSupplies(Graphics g) {
double hScale = getWidth() / (double) groundMap.getWidth();
double vScale = getHeight() / (double) groundMap.getHeight();
int imageOffsetX = waterSupplyImage.getWidth() / 2;
int imageOffsetY = waterSupplyImage.getHeight() / 2;
for (Location l : groundMap.getWaterSupplyLocations()) {
int x = (int) (l.getX() * hScale);
int y = (int) (l.getY() * vScale);
g.drawImage(waterSupplyImage, x - imageOffsetX, y - imageOffsetY,
null);
}
}
private void drawEnergySupplies(Graphics g) {
double hScale = getWidth() / (double) groundMap.getWidth();
double vScale = getHeight() / …Run Code Online (Sandbox Code Playgroud)