[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico]
[Índice de assunto]
Retornando uma 'coisa' (sobre o EP).
- Subject: Retornando uma 'coisa' (sobre o EP).
- From: "Tiago Motta Jorge" <tiagomjorge@uol.com.br>
- Date: Mon, 15 Apr 2002 21:21:38 -0300
Caros colegas, professor e monitor,
Estou com uma dúvida que não sei
se conseguirei ser claro. O problema é o seguinte: imaginem uma situação onde
quero abrir uma porta. Estou em um 'lugar' onde 'porta' é uma das 'coisas' deste
'lugar'. A minha 'porta' é uma instância de uma classe Porta que extende a
classe Coisa. Tenho um método definido para o 'lugar' onde estou, que me devolve
esta 'coisa'. No caso, assim:
public Coisa pegaCoisa(String nomeCoisa)
{
return
(Coisa)coisas.get(nomeCoisa);
}
No momento em que irei interpretar o comando do
usuário onde ele quis 'abrir' a 'porta', vou procurar na classe 'porta' se ela
possui tal método. Encontrando, executo-o. Isto é fácil quando sei que a 'coisa'
é uma 'porta'. Porém se eu fizer uma verificação para cada tipo de coisa, o
programa ficará enorme. Minha idéia era pegar a Coisa, com a função acima, e
tendo ela, verificar se ela possui o método-ação que desejo executar, e se
tiver, executá-lo. Aí acontece o grande problema. Para 'mecher' nesta coisa,
usaria:
Coisa coisa =
(Coisa)lugar.pegaCoisa(nomeCoisa);
if(coisa.acoes.containsKey(acao);
coisa.acao();
Porém, como esta acao pode estar somente definida
para a classe Porta, que extende a classe Coisa, ele nunca vai achar!!
=(
Como fazer para pegar uma 'Coisa' e 'mecher' nela
sabendo que ela é uma 'Porta', por exemplo? Descobrir que Coisa é essa para
então conseguir mecher nela corretamente?
Se não fui mto claro tento repitir a
pergunta.
Desde já agradecido,
Tiago Motta Jorge.