Padrões de DI: Ambient Context

Olá, pessoal

Enfim chegamos ao último artigo da série “Padrões de DI”, trazendo o padrão conhecido por Ambient Context.

De todos os padrões mostrados, este é o mais específico e o único que ainda não implementei em um projeto real, embora já o considere principalmente pela questão da testabilidade, mostrada ao final do artigo.

Boa leitura!

1. O QUE É

Ambient Context é um padrão de DI que consiste em definir um contexto que esteja disponível para todos os módulos da aplicação.

É um padrão que se difere bastante dos outros apresentados nesta série porque o contexto é uma dependência usada diretamente pelos seus clientes, sem que a mesma seja injetada.

(Existem dezenas de exemplos de implementação desse padrão no mundo .Net, como as classes CultureInfo, HttpContext e tantas outras que terminem com a palavra “Context”.) Continue lendo »

Anúncios

Padrões de DI: Property Injection

Olá, galera

Vamos continuar a série “Padrões de DI” mostrando outra forma de injetar dependências, conhecida por Property Injection. Seguimos os mesmos moldes do post anterior, trazendo a definição do padrão, quando usá-lo e como implementá-lo.

1. O QUE É

Property Injection – também chamado de Setter Injection – é um padrão de DI onde a dependência é fornecida por meio de uma propriedade com o setter público (ou ainda por meio de um setter method). Continue lendo »

Padrões de DI: Constructor Injection

Olá, galera

Nos posts anteriores da série “Padrões de DI”, vimos o que é “Dependency Injection” e o que podemos ganhar com essa técnica. Também vimos onde e como usar um container de DI, conhecendo os conceitos de Composition Root e Register-Resolve-Release.

Neste post e nos próximos, veremos como utilizar padrões que tornam possível o uso de DI por toda nossa aplicação. São técnicas diretamente relacionadas ao DESIGN das classes e que, portanto, desconhecem totalmente qual container está em uso (se é que há algum em uso!).

Começaremos pela mais conhecido: Constructor Injection. Vamos lá! Continue lendo »

Padrões de DI: Register Resolve Release

Olá, pessoal

De volta com a série “Padrões de DI”,  entendam este terceiro e breve post como um complemento ao post anterior, com o objetivo de explicitar mais um conceito referente ao tema “Injeção de Dependência”: o padrão Register-Resolve-Release.

Enquanto o Composition Root nos diz ONDE usar um DI container, o padrão Register-Resolve-Release nos diz COMO usá-lo.

Este padrão afirma que devemos chamar os métodos do container na sequência – Register, Resolve e Release – e em nenhuma outra sequência.

O método Register registra os componentes no container, de forma que este saiba resolver as dependências durante a execução da aplicação. Continue lendo »