1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Injeção de dependência e arquitetura em camadas

Fala pessoal,

Seguinte.

Tenho uma aplicação utilizando uma arquitetura bem simples com 4 camadas:

1: Acesso à Dados

2: Negócio

3: UI

4: Objetos de domínio e algumas Interfaces

A quarta camada contém objetos comuns às 3 camadas e não depende de nenhuma tecnologia. É apenas consumida pelas demais.

A dependência das camadas 1 á 3 e: 3 -> 2 -> 1. E elas se conhecem através de interfaces.

A minha dúvida surgiu quando fui injetar as dependências. Pelo que tenho visto em exemplos, a camada UI geralmente orquestra a injeção. O problema nesse cenário seria bem simples: Se a camada 2 depende da 1 e eu orquestro a injeção na 3, então a 3 terá que conhecer a 1 para fazer a ligação entre interface e classe concreta. Deu pra entender?

Como posso fazer isso sem que minha camada mais alta conheça a mais baixa?

Outro problema que me ocorreu é o seguinte: A minha camada 3 (UI) pode ter uma outra camada para expor uma API, ou um WebService. Então eu teria 3 camadas consumindo a camada de 2 (Negócio). Desse modo, as três orquestrariam a injeção?

Uma outra camada para que conhece as demais para orquestrar a inção seria uma solução honesta?

O projeto é em C#, .NET 4.

Obrigado a todos!

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags .net injeção-de-dependências arquitetura ou faça a sua própria pergunta.