none
Dúvidas sobre o Facede. RRS feed

  • Pergunta

  • Olaa,

     

                  Sou iniciante na área de desenvolvimento e possuo a seguinte dúvida relacionada ao Design Pattern Facede, no qual explicito abaixo:

     

    a) Levando em consideração que possuo uma aplicação em 3 camadas (UI, BLL, DAL), mas necessito usar o Facede, a implementação do facede deve ser implementada como uma DLL, como por exemplo o mesmo feito na camada BLL ?

     

    b) O Facede irá ser estruturalmente colocado entre a camada de UI e BLL, apresentando a seguinte estrutura (UI,Facede, BLL, DAL) ?

     

    Desde Já, Agradeço.

    quinta-feira, 19 de maio de 2011 17:40

Respostas

  • Se você estiver falando do padrão facAde, o mesmo é utilizado
    para que seja disponibilizada uma camada com métodos simplificados para
    ser consumido.
    Em alguns projetos que atuei, utilizavamos a camada facade para integrar nosso
    sistema com outros sistemas.
    Por exemplo se vc tem que CONSUMIR um método de outro sistema que retorna um XML
    e seu sistema trabalha trafegando entidades, o padrão facAde poderia ser aplicado
    para fazer essa integração.
    Por exemplo a camada facade faz a chamada ao método consultar do outro sistema que 
    recebe um xml na camada facade o xml retornado é serializado em uma entidade(objeto somente com propriedades)
    após a serialização a facade retorna para seu sistema a entidade com as informações carregadas.
    A mesma coisa pro método incluir.
    seu sistema popula uma entidade passa a entidade para a facade, a facade converte essa entidade para xml e chama
    o método incluir do outro sistema passando o xml.
    Portanto se o seu sistema possui ui - bus - dal creio que não seja necessária uma facade, a não ser
    que um outro sistema irá consumir suas classes bus.

    Alexandre Cardoso
    • Marcado como Resposta _dev sexta-feira, 10 de junho de 2011 16:10
    segunda-feira, 30 de maio de 2011 16:59
  • Teve um projeto que atuei que tinha uma arquitetura que achei bem interessante,
    Tinhamos 2 tipos de businnes a business workflow e a business object

    A business workflow continha todo o fluxo do negocio
    A business object regras de negócio.

    Note no exemplo que a business object foi utilizada somente para obter o resultado de um calculo baseado nos parametros passados. (Resumindo foi e voltou)


    Segue exemplo

    BusinessWorkflow.Paciente.Incluir(EntidadePaciente)
    {
    
    	Dados.Paciente.CadastrarDadosPessoais(EntidadePaciente.DadosPessoais)
    
        Dados.Paciente.CadastrarEndereco(EntidadePaciente.Endereco)
    
    	EntidadePaciente.CaracteristicasFisicas.PesoIdeal = BusinessObject.MassaCorporal.CalcularPesoIdeal(EntidadePaciente.CaracteristicasFisicas)
    
    	Dados.Paciente.CadastrarCaracteristicasFisicas(EntidadePaciente.CaracteristicasFisicas)
    
    	for each (var Contato in EntidadePaciente.ContatosList)
    	{
    	 Dados.PacienteContatos.Incluir(EntidadePaciente.Contato)
    	}
    
    }

     

    Alexandre Cardoso
    quarta-feira, 8 de junho de 2011 14:47

Todas as Respostas

  • Se você estiver falando do padrão facAde, o mesmo é utilizado
    para que seja disponibilizada uma camada com métodos simplificados para
    ser consumido.
    Em alguns projetos que atuei, utilizavamos a camada facade para integrar nosso
    sistema com outros sistemas.
    Por exemplo se vc tem que CONSUMIR um método de outro sistema que retorna um XML
    e seu sistema trabalha trafegando entidades, o padrão facAde poderia ser aplicado
    para fazer essa integração.
    Por exemplo a camada facade faz a chamada ao método consultar do outro sistema que 
    recebe um xml na camada facade o xml retornado é serializado em uma entidade(objeto somente com propriedades)
    após a serialização a facade retorna para seu sistema a entidade com as informações carregadas.
    A mesma coisa pro método incluir.
    seu sistema popula uma entidade passa a entidade para a facade, a facade converte essa entidade para xml e chama
    o método incluir do outro sistema passando o xml.
    Portanto se o seu sistema possui ui - bus - dal creio que não seja necessária uma facade, a não ser
    que um outro sistema irá consumir suas classes bus.

    Alexandre Cardoso
    • Marcado como Resposta _dev sexta-feira, 10 de junho de 2011 16:10
    segunda-feira, 30 de maio de 2011 16:59
  • Prezado agpcardoso,

     

     

                                 Muito obrigado pela atenção, mas possuo uma outra dúvida:

     

    a) Como ficaria a estrutura do projeto que utiliza o facede ? o facede irá ser representado por uma DLL ?

     

     

    Novamente obrigado. 

    terça-feira, 7 de junho de 2011 03:11
  • Sim, normalmente é criado um projeto só para façade.

     


    Alexandre Cardoso
    quarta-feira, 8 de junho de 2011 14:02
  • Teve um projeto que atuei que tinha uma arquitetura que achei bem interessante,
    Tinhamos 2 tipos de businnes a business workflow e a business object

    A business workflow continha todo o fluxo do negocio
    A business object regras de negócio.

    Note no exemplo que a business object foi utilizada somente para obter o resultado de um calculo baseado nos parametros passados. (Resumindo foi e voltou)


    Segue exemplo

    BusinessWorkflow.Paciente.Incluir(EntidadePaciente)
    {
    
    	Dados.Paciente.CadastrarDadosPessoais(EntidadePaciente.DadosPessoais)
    
        Dados.Paciente.CadastrarEndereco(EntidadePaciente.Endereco)
    
    	EntidadePaciente.CaracteristicasFisicas.PesoIdeal = BusinessObject.MassaCorporal.CalcularPesoIdeal(EntidadePaciente.CaracteristicasFisicas)
    
    	Dados.Paciente.CadastrarCaracteristicasFisicas(EntidadePaciente.CaracteristicasFisicas)
    
    	for each (var Contato in EntidadePaciente.ContatosList)
    	{
    	 Dados.PacienteContatos.Incluir(EntidadePaciente.Contato)
    	}
    
    }

     

    Alexandre Cardoso
    quarta-feira, 8 de junho de 2011 14:47