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...
|