Question:

Várias dúvidas

(Last edited: terça, 17 março 2009, 8:20 )
Answer:
Question:
Suponhamos que no mooshak tenta-se criar um objecto do tipo:
new Music("Boo","Jessica",-500,0,6);
Neste caso temos 3 argumentos inválidos: tempo negativo, formato desconhecido e classificação fora dos limites.
A meu ver o programa pode assumir dois comportamentos possíveis(a definir por mim):
1) ou simplesmente não guarda a música...
2) ou ajusta os resultados
No caso de ajustar os resultados, a música poderia ser guardada com formato padrão MP3 e classificação 3, entre outras especificações.
Portanto, qual destes comportamentos o programa deve seguir?
----------------------------------------------------------------------------------
Answer:
Não é possível um contrutor "não guardar" a música; o que é possível é a 2ª opção, ajustar. Ou seja, fazer o construtor verificar se os valores dos parâmetros são legais e, caso não o sejam, inicializar os campos com valores legais.
Por exemplo, caso o formato não seja legal, inicializar com MP3 ou um dos outros; caso o rating esteja fora dos limites, "encostá-lo" num dos limites: se for zero ou negativo, atribuir ao campo MINIMUM_RATING; se for superior ao máximo, atribuir MAXIMUM_RATING. E assim por diante.

Question: O método equals também deve comparar o ranking?
Answer: Sim, é o que está especificado.

Question: Uma música é igual a outra através das propriedades de qualquer música: nome, autor e tempo. ranking é algo que varia dependendo de cada ouvinte. E ainda assim o método equals deveria comparar duas músicas pelo ranking?
Answer: concordo com o raciocínio, que só fica bem ao seu autor. Mas o facto é que é assim que a coisa foi especificada. Os técnicos têm de fazer o que os seus clientes pedem...

» FAQ sobre submissões ao mooshak