Em um projeto corporativo desenvolvido em C# sob arquitetura
multicamadas, o analista identifica que determinadas classes
da camada de domínio estão violando o princípio de inversão
de dependência (DIP) ao instanciar diretamente classes da
camada de infraestrutura. Considerando as boas práticas de
desenvolvimento orientado a objetos e a aplicação de padrões
de projeto, qual seria a solução mais aderente para
restabelecer o baixo acoplamento e a alta coesão entre as
camadas?