Esta técnica quebra a lei de demeter? Deve ser utilizada em código de produção?
Esta técnica quebra a lei de demeter? Deve ser utilizada em código de produção?
Não, pois estamos somente encapsulando a criação do objeto. Deve ser utilizada sim em produção, na realidade é uma boa prática, pois deixa o teste mais legível.
Oi Fernando,
Ótima pergunta.
Se vc interpretar a LdD "seca", quebra. Mas é por uma boa razão, certo? Você está usando outro padrão, "interfaces fluentes", para ganhar em legibilidade.
A Lei de Demeter te ajuda a encontrar casos onde você fura o encapsulamento de maneira implícita, por exemplo:
A a = new A();
a.getB().fazAlgo();
Se B mudar, vc quebra o código que usa B indiretamente por meio de A. Isso é complicado. No curso de SOLID eu falo sobre isso.
Faz sentido?