Pergunta

Quais são os recursos mais importantes que um contêiner do COI deve conter? Você pode criar facilmente recipientes em 15 linhas de código, mas o que deve incluir ser "útil" em um projeto?

Foi útil?

Solução

Este é um tópico bastante aberto e dado a muita subjetividade, mas tentarei responder de um ponto de vista muito pragmático. Dados os projetos em que trabalhei e minha experiência com o COI, eu diria que há pelo menos três biggies para procurar em termos de utilidade.

  1. Configuração - Qualquer COI que você usa precisa ter algum local central que permita configurar o comportamento desse contêiner. Seja um arquivo de configuração ou um bom conjunto de chamadas de API que podem ser embrulhadas em uma classe global em algum lugar, se o contêiner não for facilmente configurável, será uma dor de cabeça.
  2. Gerenciamento ao longo da vida - Você realmente deseja um contêiner com a capacidade de permitir a vida útil variada do objeto. Você pode querer que um determinado objeto sempre obtenha um novo iPersonCreator, mas deseja apenas um service de IPERSONSERVE a qualquer momento.
  3. Injeção automática de dependência - OK, então a injeção de dependência é o conceito de que o COI está construído sobre, mas você não quer ter que gerenciar isso sozinho. A idéia aqui é que, se você solicitar um iPersonCreator pela primeira vez, ela deve resolver todas as suas dependências e suas dependências e assim por diante.

No geral, o que você precisa depende do projeto, mas existem vários contêineres por aí que atenderão às suas necessidades muito bem.

Outras dicas

Em ordem decrescente de importância:

  1. Permitir pelo menos injeção de setter e construtor,
  2. Configuração separada do código,
  3. Permitir diferentes estilos de configuração (XML ou anotações),

Isso exigirá mais de 15 linhas de código, mas elas parecem essenciais para mim.

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