В настоящее время я выполняю линейный поиск по списку элементов, например, так:
private Item getKey(ArrayList<Item> inventory) {
for(Item item : inventory) {
if(item instanceof Key) {
return item;
}
}
return null;
}
Я слышал, что для использования instanceof
считается "запахом кода".Обычно, чтобы избежать использования instanceof
, я бы использовал полиморфизм (например, то, что описано в этом ответе ), однако в таком случае я изо всех сил пытаюсь понять, как я мог бы это использовать.
Поэтому мне интересно, есть ли способ, которым я мог бы устранить необходимость instanceof
и, возможно, использовать другую технику, такую как полиморфизм, которая более сфокусирована на OOD?