none
Como estruturar classes para uma aplicação em 3 camadas?

    Question

  • Pessoal,

    Estou tentando construir uma pequena aplicação Web que faça o CRUD (basicão) para enfim eu abandonar VB6.

    Já dei uma olhada nos tópicos relacionados e em vários tutoriais porém acho que não estou entendendo o conceito real de três camadas...

    Para isso resolvi tomar como caso de estudo uma página de questionário de empresa.

    A idéia é essa:

    Usuário, preenche formulário, edita e talz...

    Criei uma classe Pessoa , uma Cliente e uma Colaborador (cliente e colaborador herdam Pessoa)

    na Classe Cliente coloquei vários métodos(ainda não implementados) por ex. "fazLogin", "GravaQuestionario","fazLogOff",etc...

    Criei também uma classe Questionario

    Aqui surge minha dúvida. Estas classes fazem parte da camada BLL certo ?

    Só que por ex: o método "GravaQuestionario". Eu tenho em mente que ele instanciará a classe questionário e através da classe QuestionarioDAL fará literalmente o insert no banco.

    Mas isso esta me deixando confuso,

    Camada de interface pega valor do campo e atribui na classe Questionario(Camada de Lógica)

     A Classe questionario instancia a classe QuestionarioDAL(Camada de dados) e salva.

    Isso na teoria! porque na prática me indicaram o uso de DataSet e TableAdapter que muda toda a história...

    o DataSet possui os mesmos atributos que minha classe Questionario, deixando-a sem utilidade e confundindo ainda mais minha mente que esta ainda aprendendo como funciona a Prog. Orientada a Objetos...

     

    Se alguem puder me ajudar, fico grato!

     

     

    Thursday, June 17, 2010 1:51 AM

Answers

  • Olá,

        Sua questão não é tão simples. Mas vou tentar dar alguns "caminhos". Vamos lá.

        Você pode dividir seu aplicativo em quantas camadas quiser. Desde que tenha real consciência de sua finalidade. Dividir em 3 camadas significa que você terá uma informação que vai "navegar" entre as camadas para cumprir seu objetivo.

        Você pode preencher um datatable (sua informação) na tela, chamar um método de negócio e este vai gravar os dados no banco de dados.

        O datatable vai navegar entre as camadas e cada uma delas fará o que for de sua responsabilidade.

        Você pode usar DataTables, Objetos, uma string, XML, etc. Tudo isto como informações que vão "navegar" entre as camadas.

        Seu objeto Pessoa, pode ter uma propriedade nome. Que quando você mandar gravar, é usada para preencher um parâmetro. Assim como existem inúmeras alternativas para "converter" dadaos de um objeto em parâmetros ou num conjunto de dados.

        Só complemento dizendo para você que está começando: CUIDADO com a herança. Parece óbvio, mas a herança só deve ser usada quando o filho É UM pai. Completo e sem exceções. Se precisar de apenas 1 funcionalidade use agregação NUNCA herança.

       

       

       

    Saturday, June 26, 2010 8:46 PM