while (Board[randRow][randColumn] instanceof Wumpus || Board[randRow][randColumn] instanceof Gold
|| Board[randRow][randColumn] instanceof Pit)
如何用polymorphism替换instanceof?
答案 0 :(得分:2)
Wumpus
,Gold
和Pit
有什么共同之处?
让我们说bot / monster对这种类型的单元感兴趣。
所以定义一个接口:
public interface Cell{
boolean isInterestedForMonster();
}
并为Wumpus
,Gold
和Pit
public class Gold implements Cell{
@Override public boolean isInterestedForMonster(){
return true;
}
}
使用:
Cell cell = Board[randRow][randColumn];
while(cell.isInterestedForMonster()){
//Do something
}
这就是你可以用多态“
替换'instanceof'的方法