Por que a injeção de dependência usar um?

Por que a injeção de dependência usar um?

resposta 1

Eu acho que um monte de vezes as pessoas ficam confusas sobre a diferença entre a injeção de dependência e uma injeção de dependência quadro (ou um recipiente como muitas vezes é chamado).

Injeção de dependência é um conceito muito simples. Em vez de este código:

public class A { private B b; public A() { this.b = new B(); // A *depends on* B } public void DoSomeStuff() { // Do something with B here } } public static void Main(string[] args) { A a = new A(); a.DoSomeStuff(); }

você escrever código como este:

public class A { private B b; public A(B b) { // A now takes its dependencies as arguments this.b = b; // look ma, no "new"! } public void DoSomeStuff() { // Do something with B here } } public static void Main(string[] args) { B b = new B(); // B is constructed here instead A a = new A(b); a.DoSomeStuff(); }

E é isso. Seriamente. Isto dá-lhe uma tonelada de vantagens. Os dois mais importantes são a capacidade de funcionalidade de controle de um lugar central (a Main()função) em vez de espalhá-la em todo o seu programa, e a capacidade de mais facilmente testar cada classe isoladamente (porque você pode passar simulações ou outros objetos falsificadas em seu construtor vez de um valor real).

A desvantagem, claro, é que agora você tem um mega-função que sabe sobre todas as classes usadas pelo seu programa. Isso é o que os quadros de DI pode ajudar com. Mas se você está tendo dificuldade para entender por que esta abordagem é valiosa, eu recomendo começando com injeção de dependência manual do primeiro, para que possa apreciar melhor o que os vários quadros lá fora, pode fazer por você.

 

Dependency Injection Demystified

A resposta é simplificar a compreensão do conceito, eo autor contra outra celebridade vai complicar conceito

Inversão de Controle Containers e o padrão Dependency Injection . Martin Fowler é meu autor favorito. Normalmente, ele é clara e concisa. Aqui, ele consegue fazer som injeção de dependência terrivelmente complicado. Ainda assim, este artigo tem uma discussão aprofundada das várias formas de injeção de dependência podem ser alterados.

 

Acho que você gosta

Origin www.cnblogs.com/chucklu/p/12583904.html
Recomendado
Clasificación