COMO FAZER CADASTRO COM OO?

MARCOS 24/09/2012 17:29:39
#410379
Prezados colegas,
Eu já tenho estudado o desenvolvimento de software usando OO (VB.NET).Não tenho
dificuldade para compreender os conceitos.Mas,a aplicação “prática” esta sendo minha
maior dificuldade.Isto acontece,porque quando procuro exemplos na internet,vejo cada
desenvolvedor implementando OO de modo diferente.Por isto,peço o seguinte esclarecimento aos colegas:

Problema:

Digamos que tenho que fazer um simples cadastro de “Clientes” em OO (VB.NET)

Como ponto de partida,digamos que eu modelei meu BD,criando uma tabela chamada “TbCliente”

Obs: Os seguintes campos

- Nome
- End
- Tel


Dúvidas iniciais:


1.) Em OO,o correto é criar uma classe onde cada campo da tabela (Nome,End e Tel) ,tenha
um atributo correspondente na classe??????:

Classe: ClCliente
Atributos: Nome,End e Tel
Métodos: Adicionarcliente,Deletarcliente,editarcliente e Pesquisarcliente

2.) A Classe que irá realizar o CRUD,deverá ser instanciada a partir desta classe de dados que criei????


3.) Terei de ter para cada tabela do BD (TbCliente,TbFornecedor,TbFuncionario,etc...),uma classe
correspondente no meu projeto,para manipular esta tabela?
JABA 24/09/2012 19:31:42
#410396
Resposta escolhida
Citação:

1.) Em OO,o correto é criar uma classe onde cada campo da tabela (Nome,End e Tel) ,tenha
um atributo correspondente na classe??????:



Sim, essa é uma das possibilidades. Implementar Table per Class torna a aplicação mais proxima da OOP.
Vai depender muito do tipo de projeto que esteja implementando e as prioridades no quesito desempenho.

Citação:

2.) A Classe que irá realizar o CRUD,deverá ser instanciada a partir desta classe de dados que criei????



Aqui você pode criar uma camada DAO para tratar as consultas do BD. Depois disso você tem duas estratégias, que são: chamar os metodos da DAO na Classe de Negocio, ou chamar o DAO direto na camada de apresentação mesmo.


Citação:

3.) Terei de ter para cada tabela do BD (TbCliente,TbFornecedor,TbFuncionario,etc...),uma classe
correspondente no meu projeto,para manipular esta tabela?



Sim, é o mais indicado, mas existem outras estratégias como criar um tabelão para a hierarquia de classes e se basear por um delimitador.

vlw
LLAIA 25/09/2012 10:45:33
#410435
Pra complementar, seria bom vc dá uma pesquisada em design patterns como MVC e Layers. Pode te orientar também nas tuas decisões.
MARCOS 25/09/2012 11:52:50
#410444
Pessoal,com relação a resposta número [Ô]2[Ô]...

Eu não entendi muito bem.Esta [Ô]classe de dados[Ô],que eu citei.Que irá representar a tabela do BD
(TbCliente) e seus campos.

Eu posso criar nesta classe ,os métodos CRUD e acessar a partir destes métodos a classe de acesso ao
Banco de Dados????
GUIMORAES 25/09/2012 12:53:09
#410446
Marcos.
Como foi dito, você pode utilizar uma Camada dao.

Ex:

Public Class clientes

Public Property codigo As Int32
Public Property nome As String

End Class

E depois a camada dao, que vai conter os metodos.

Public Class daoClientes

Public Sub incluir(ByVal c As clientes)
[ô]sql incluir clientes
End Sub

Public Sub excluir(ByVal c As clientes)
[ô]sql excluir clientes
End Sub

End Class

Abraços

MARCOS 26/09/2012 13:24:13
#410546
GUIMORAES,
Seu exemplo é simples e muito bom.
Mas,se os colegas puderem esclarecer o seguinte eu agradeço:

1.) No exemplo do GUIMORAES,é dentro da classe [Ô]clientes[Ô] , que terei de criar os métodos necessários para executar os métodos da classe [Ô]daoclientes[Ô]???
LUIS.HERRERA 26/09/2012 16:01:09
#410582
Marcos boa tarde.

Também tive várias dúvidas e ainda aparecerão muitas, mas o livro Desenvolvimento em Camadas com C# .Net da Visual Books, de Carlos Olavo de Azevedo Camacho Júnior, detalha muito claramente a criação de uma estrutura de classes para acesso completo a banco de dados (insert, updates, select e delete). Apesar de ser m C#, os conceitos e exemplos são facilmente compreendidos para quem usa VB. Eu estou migrando do VB6 para C# com relativa facilidade, depois de ler esse livro, muito claro na explicação e exemplos de uma aplicação simples, mas completa.

Se não me engano, há um livro semelhante para VB.net. Faça uma pesquisa e acho que resolverá suas dúvidas de uma vez.

Nota: Basicamente são aconselháveis a craição de 4 camadas:
- modelos
- acesso a dados
- negócios
- interface cliente

JABA 26/09/2012 17:17:33
#410591
Citação:

1.) No exemplo do GUIMORAES,é dentro da classe [Ô]clientes[Ô] , que terei de criar os métodos necessários para executar os métodos da classe [Ô]daoclientes[Ô]???



Sim, mas cuidado com as indireções, pois toda vez que você passa uma responsabilidade para outro objeto fazer e que ele mesmo poderia fazer, se chama indireção.

vlw
GUIMORAES 26/09/2012 22:43:36
#410618
No exemplo que eu realizei, são classes separadas.
Na classe de Negócios, está o daoClientes, que contem os métodos.

Qualquer duvida posta ai.
Abraços
Tópico encerrado , respostas não são mais permitidas