Olá galerinha.
Estive lendo um artigo do shoes, sobre contratos Nulos. Achei bem legal ele e a discussão que trouxe.
Porém me restou uma dúvida quanto a “solução” proposta. Talvéz alguém que tenha lido ou mesmo o philip possa me esclarecer.
Bom no começo do artigo ele trata do problema levantado pelo Todd Huss em algum post. E fala de uma solução que tods fazem que é:
public metodo(String a)
{
if(a==null)
throw new MinhaException("argumento não pode ser nulo");
}
O que seria igual que se o método lançasse uma NPE.
Depois ele discorre sobre várias outras soluções propostas, e no final trata do Design by Contract. E sua solução é implementar o pré-contrato e pós-contrato em métodos específicos, que mudam o estado do objeto.
Bom, segundo os seus exemplos ele acaba verificando os atributos da classe e parametros dos métodos e lança exceptions se elas não cumprirem o contrato, e a implementação continua igual a acima citada (código acima). Gostaria de saber no exemplo citado acima por ele, como fazer a implementação? (Verificar parâmetros null) Continuo verificando igual os objetos passados para o método e lanço exception? Eu entendi o resto do artigo e sobre os contratos e tudo mais. Só que ficou essa dúvida, pois a solução citada (código acima) foi meio criticada segundo o artigo e depois acabou em algo muito parecido (igual?!).
Agradeço quem puder me esclarecer isso.
Abraços!


