我正在尝试使用据我所知的最佳实践来创建游戏。我有:
- 一个
VisibleObject
有protected void draw(Canvas c)
功能的 - 一个
MapTile
用来extends VisibleObject
画自己的。 - 一个
Map
包含 MapTiles 的 LinkedList 的类,tiles
.
在Map
课堂上,我想要一个这样的循环:
public void draw(Canvas c){
for(MapTile tile : tiles){
tile.draw(c);
}
}
但我意识到我不能在每个图块上调用 draw,因为它是VisibleObject
. 我可以想到 3 种可能的解决方案:
- 只需更改
protected
为public
inVisibleObject
。 - 创建一个只调用的 MapTile 的公共方法
super.draw(c)
(我认为这是有效的语法?) - 将 Map 中的 for 循环更改为类似的内容,我相信这会使其有效。
新循环:
MapTile current;
for(MapTile tile : tiles){
current = tile;
current.draw(c);
}
哪种解决方案会是更好的编程实践?