Eu tenho visto muitas referências de Injeção de Dependência (DI) e Inversão de Controle (COI), mas realmente não sei se existe uma diferença entre elas ou não. Gostaria de começar a usar um ou os dois, mas estou um pouco confuso sobre como eles são
Inversão de controle (IoC) é um princípio abstrato que descreve um aspecto de alguns projetos de arquitetura de software em que o fluxo de controle de um sistema é invertido em comparação com a programação procedural.
Eu tenho visto muitas referências de Injeção de Dependência (DI) e Inversão de Controle (COI), mas realmente não sei se existe uma diferença entre elas ou não. Gostaria de começar a usar um ou os dois, mas estou um pouco confuso sobre como eles são
As palavras invertou controlnão são usadas para definir Inversão de Controle nas definições que eu já vi. Definições Wikipedia inversão de controle (IoC) é uma técnica de programação, expressa aqui em termos de programação orientada a objetos, na qual o acoplamento de objetos é vinculado em...
Estou projetando um novo sistema e quero saber o que é a inversão de controle (IOC) e, mais importante, quando usá-lo. Ele precisa ser implementado com interfaces ou pode ser feito com
Estou trabalhando em uma equipe em que o líder da equipe é um defensor virulento dos princípios de desenvolvimento do SOLID. No entanto, ele não tem muita experiência em obter software complexo fora da porta. Temos uma situação em que ele aplicou o SRP ao que já era uma base de código bastante...
Qual é o objetivo dos contêineres do COI? Os motivos combinados para isso podem ser simplificados para o seguinte: Ao usar os princípios de desenvolvimento OOP / SOLID, a injeção de dependência fica confusa. Você tem os pontos de entrada de nível superior gerenciando dependências para vários...
Estive lendo mais sobre o princípio da Inversão de Controle e Injeção de Dependências como uma implementação e tenho certeza de que entendi. Parece estar basicamente dizendo 'não declare as instanciações de seus alunos dentro da classe'. Em vez disso, as instanciações devem ser passadas e...
Estou procurando implementar injeção de dependência em um aplicativo relativamente grande, mas não tenho experiência nele. Estudei o conceito e algumas implementações de IoC e injetores de dependência disponíveis, como Unity e Ninject. No entanto, há uma coisa que está me iludindo. Como devo...
Sou um grande fã do DI / COI. É ótimo para lidar / abstrair dependências difíceis e facilitar a vida. No entanto, eu tenho uma queixa pequena, que não tenho certeza de como resolver. A idéia básica no DI / IOC é que, quando um objeto é instanciado, todas as suas dependências são preenchidas...
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...
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...
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...
Peço desculpas se isso parece mais uma repetição da pergunta, mas toda vez que encontro um artigo sobre o assunto, ele fala apenas sobre o que é DI. Então, eu tenho DI, mas estou tentando entender a necessidade de um contêiner de IoC, no qual todo mundo parece estar se metendo. O objetivo de um...
Recentemente, venho investigando uma programação mais "organizada" e aprendendo que devo programar para uma interface, não para uma implementação. Com isso em mente, seria melhor "esboçar" um projeto nas interfaces antes de escrever a implementação sempre que possível? E se esse for o caso, no...
Contexto: estou usando c # Projetei uma classe e, para isolá-la e facilitar o teste de unidade, estou passando em todas as suas dependências; não faz instanciação de objeto internamente. No entanto, em vez de fazer referência a interfaces para obter os dados de que precisa, eu faço referência a...
Aprendi a fazer o desenvolvimento orientado a testes (TDD), injeção de dependência (DI) e inversão de controle (IoC), tudo ao mesmo tempo. Quando escrevo código usando TDD, sempre acabo usando DI nos construtores da minha classe. Eu estou querendo saber se isso é por causa de como eu aprendi a...
No ano passado, criei um novo sistema usando Injeção de Dependência e um contêiner de COI. Isso me ensinou muito sobre DI! No entanto, mesmo depois de aprender os conceitos e os padrões adequados, considero um desafio desacoplar o código e introduzir um contêiner IOC em um aplicativo herdado. O...
Eu sou novo na injeção de dependência e tenho algumas perguntas sobre qual estilo devo usar em meus aplicativos. Acabei de ler Inversão de controle de contêineres e o padrão de injeção de dependência de Martin Fowler, mas não consigo obter a diferença prática entre construtor, setter e injeção de...
Alguém já iniciou um projeto para executar o COI em tempo de compilação (possivelmente usando a emissão de Roslyn ou Linq MethodInfo)? Minha experiência com contêineres do COI até agora tem sido ótima, revelando alguns pequenos problemas Muitos contêineres do COI demoram a iniciar, pois grande...
Em muitos artigos em toda a web, os termos Princípio de Inversão de Controle e Inversão de Dependência parecem misturados e usados como sinônimos (mais confusão é imposta pelas ferramentas chamadas "DI-Containers" e "IoC-Containers"). Um artigo da Wikipedia faz um bom trabalho tentando explicar...