Pergunta

Temos muitos objetos com este tipo de design:Interface e diversas implementações, e utilização de diversos objetos por composição.Exemplo:Foo implementa o ifoo e tem um objeto de barra que implementa o IBAR Foo também possui um método setbar (barra ibar) para injeção de dependência.

Minha pergunta é :o setter não deveria estar na interface?(Para testar, zombar...estou preso !)

Foi útil?

Solução

Se você estiver usando o polimorfismo, ou seja, chamando o setter no tipo de interface, obviamente você precisa dele na interface.

Outras dicas

Ter um setter na interface apenas para zombar e testar não é bom.Assim, você permite que os usuários dessa interface definam componentes arbitrariamente, mesmo que as propriedades desse objeto provavelmente não devam ser modificáveis ​​após a construção.A interface não deve revelar como construir o objeto.

Injete a barra para foo usando injeção de setter. Em um contexto em que o Foo não pode existir sem a barra, seria mais apropriado injetar a barra com um construtor.

LEIA APRESENTE: Tipos de injeção de dependência

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top