Pesquisar

sexta-feira, 25 de setembro de 2009

Usar sempre a interface mais genérica possível

Se você precisa somente iterar sobre uma coleção de um tipo de objeto...
Faça seuMetodoReceber(Collection colecao); e não uma List ou Set... (ou ainda uma Iterable)


Se você vai trabalhar num nível muito baixo com Stream...
Faça seuMetodoReceber(InputStream is); e não um FileInputStream...


Essa lista segue sem fim...

Porque sempre usar a interface mais genérica possível?

Você pode simplesmente mudar sua coleção que retornava uma List pra retortar uma TreeSet. Mudar o comportamento esperado, mudar o Stream para outro tipo e outras coisas que são comuns, sem sofrer tanto. Se você nunca enfrentou o inferno das manutenções não entenderá completamente a dor.

Se você está pensando em criar uma biblioteca então essa consideração deve ser ter atenção redobrada.

Opte sempre pelo mais GENÉRICO possível.

Nenhum comentário: