Como implementar uma classe FACADE (FACHADA) (Boas práticas) CSharp

05/05/2015

0

Olá pessoal!

Sou marinheiro de primeira viagem com programação em camadas e estou pegando alguns tutoriais na net sobre o uso de classes FACADE, pois estou precisando muito...
Tenho uma aplicação em 4 camadas (conexaoBanco, ObjetoTransferencia, Apresentacao e RegrasNegocio ). Na camada Regras de negócio, tenho várias classes com seus respectivos métodos (Inserir, Atualizar, Excluir, etc...). Vou citar um exemplo simples: Eu precisarei dar um insert em 3 tabelas (Clientes, PessoaFisica e Pessoa) simultaneamente e para facilitar, gostaria de usar uma classe FACADE...

Dúvida:

O mais correto seria eu criar a classe FACADE na camada REGRAS DE NEGÓCIOS ou devo criar uma camada FACADE e dentro dela criar as classes do tipo Facade?

O que seria mais correto?

obrigado...
Abraço a todos! :)
Jalber Romano

Jalber Romano

Responder

Post mais votado

17/05/2015

Você não estaria ferindo questões de camadas, pois as três classes estão na mesma camada.Você poderia estar ferindo o conceito de Responsabilidade Única (S do SOLID), mas considerando que se trata de um facade, o objetivo estaria claro e quem fosse utilizar teria total conhecimento do que está fazendo. Caso fosse necessário, poderia optar por usar cada classe individualmente.
Abraço.

Joel Rodrigues

Joel Rodrigues
Responder

Mais Posts

15/05/2015

Joel Rodrigues

O ideal é criar uma classe que tenha como responsabilidade fazer as operações "conjuntas" nessas tabelas. Por exemplo, se isso é um cadastro de clientes, você pode ter na classe responsável por inserir clientes, um único método que insere nas três tabelas. Afinal, para a camada mais externa está sendo feito uma inserção de cliente, certo?
Abraço.
Responder

17/05/2015

Jalber Romano

Obrigado por responder Joel.

Na camada REGRAS DE NEGÓCIO eu estou criando as classes ClienteNegocios, PessoaFisicaNegocios e PessoaNegocios e cada uma delas possui um método Inserir()... Digamos que eu apenas criasse apenas um método inserir() na classe ClienteNegocios, que desse um insert nas 3 tabelas simultaneamente.. minha preocupação seria: Será que não estaria fugindo do conceito de Camadas, e daquelas regras como o uso de uma classe FACADE, etc? É que por não ter experiência tenho esses receios... o que você acha?

Obrigado, mais uma vez, por ter respondido...
Responder

31/05/2015

Jalber Romano

Obrigado pela dica Joel :)
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar