Dúvida em implementação OO

1 resposta
K

Tenho a seguinte interface:

public interface Locadora<E> {

	int ALUGADO = 1;
	int DESALUGADO = 2;
	
	void alugar(E e);

}

Classe:

public class LocadoraDeFilmes implements Locadora<Filme> {

	public void alugar(Filme filme) {
		if (filme.getStatus() == 1) {
			throw new IllegalArgumentException("O filme " + filme.getTitulo() + " já está alugado. Portanto não é possível alugar.");
		} else {
			filme.setStatus(ALUGADO);
			System.out.println("O Filme " + filme.getTitulo() + " foi alugado com sucesso.");
		}
	}

}

E o TestCase prova que o método alugar() está fazendo o que deve ser feito. Mas agora eu quero implementar da seguinte forma:

Armazenar os filmes que foram alugados em uma coleção. Para que eu não precise testar se filme já está alugado a partir do seu status, e sim pesquisando pelo título do filme na coleção de filmes alugados.

Se alguém puder me dar uma dica. Se possível, não coloquem nada pronto.. isso é bom para ir pegando o jeito com OOP!

Obrigado galera.

1 Resposta

nilolima

Cara esse teu código tá compilando?
Pq quando eu declaro uma propriedade dentro de uma Interface ela vira automaticamente uma constante. Não sei se vc já sabia disso.
Tem um monte de erros concetuais nesse aplicação. Seria melhor vc usar um boolean para marcar como alugado.
Coesão: Alugado não seria uma prepriedade da locadora, a locadora não está alugada e sim ou qualquer outra coisa.
Você poderia também usar uma execeção mais claro quado o filme já estiver aluga. IllegalArgumentException no meu ver não se aplica muito bem.

Boa sorte nos teus estudos.

Criado 19 de setembro de 2006
Ultima resposta 20 de set. de 2006
Respostas 1
Participantes 2