Perguntas com a marcação «dependency-injection»

Injeção de Dependência, é um padrão de design no qual as dependências (instâncias de objetos, propriedades) de um componente são definidas por meio dos construtores, métodos ou campos (propriedades). É uma forma especial da inversão de dependência mais geral.


5
Quais são os benefícios da injeção de dependência nos casos em que quase todos precisam acessar uma estrutura de dados comum?
Existem muitas razões pelas quais os globais são maus no POO. Se o número ou tamanho dos objetos que precisam ser compartilhados for muito grande para ser transmitido com eficiência nos parâmetros de função, geralmente todos recomendam a Injeção de Dependências, em vez de um objeto global. No entanto, no …

2
Problema ao entender a palavra "costura"
Estou lendo "Injeção de Dependências no .NET", de Mark Seemann (é fantástico e deve ter) e o autor costuma usar a palavra "costura". Mas não consigo entender o que isso significa. Aqui está um exemplo do uso desta palavra: O capítulo 7 explica como compor objetos em várias estruturas concretas, …



2
Há evidências de que o uso de injeção de dependência melhora os resultados na engenharia de software?
Não obstante sua popularidade, há alguma evidência empírica que mostre que a Injeção de Dependência (e / ou o uso de um contêiner de DI) ajuda a, por exemplo, reduzir a contagem de bugs, melhorar a manutenção ou aumentar a velocidade de desenvolvimento em projetos de software da vida real?

1
Práticas de contêiner Injeção de Dependência / IoC ao escrever estruturas
Eu usei vários contêineres de IoC (Castle.Windsor, Autofac, MEF, etc) para o .Net em vários projetos. Descobri que eles tendem a ser abusados ​​frequentemente e incentivam várias práticas ruins. Existem práticas estabelecidas para o uso de contêiner de IoC, principalmente ao fornecer uma plataforma / estrutura? Meu objetivo como escritor …




3
Me venda em contêineres IoC, por favor
Eu já vi vários recomendar o uso de contêineres IoC no código. A motivação é simples. Pegue o seguinte código injetado de dependência: class UnitUnderTest { std::auto_ptr<Dependency> d_; public: UnitUnderTest( std::auto_ptr<Dependency> d = std::auto_ptr<Dependency>(new ConcreteDependency) ) : d_(d) { } }; TEST(UnitUnderTest, Example) { std::auto_ptr<Dependency> dep(new MockDependency); UnitUnderTest uut(dep); //Test …


4
As dependências de injeção devem ser feitas no ctor ou por método?
Considerar: public class CtorInjectionExample { public CtorInjectionExample(ISomeRepository SomeRepositoryIn, IOtherRepository OtherRepositoryIn) { this._someRepository = SomeRepositoryIn; this._otherRepository = OtherRepositoryIn; } public void SomeMethod() { //use this._someRepository } public void OtherMethod() { //use this._otherRepository } } contra: public class MethodInjectionExample { public MethodInjectionExample() { } public void SomeMethod(ISomeRepository SomeRepositoryIn) { //use SomeRepositoryIn } …


5
Posso usar a injeção de dependência sem interromper o encapsulamento?
Aqui está minha solução e projetos: BookStore (solução) BookStore.Coupler (projeto) Bootstrapper.cs BookStore.Domain (projeto) CreateBookCommandValidator.cs CompositeValidator.cs IValidate.cs IValidator.cs ICommandHandler.cs BookStore.Infrastructure (projeto) CreateBookCommandHandler.cs ValidationCommandHandlerDecorator.cs BookStore.Web (projeto) Global.asax BookStore.BatchProcesses (projeto) Program.cs Bootstrapper.cs : public static class Bootstrapper.cs { // I'm using SimpleInjector as my DI Container public static void Initialize(Container container) { container.RegisterManyForOpenGeneric(typeof(ICommandHandler<>), …

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.