VB.NET - Aplicação de acesso a dados em 3 camadas - parte 2
Se você perdeu a primeira parte deste artigo acompanhe em VB.NET - Aplicação de acesso a dados em 3 camadas - parte 1.
Apenas para lembrar ...
A solução criada no VS.NET 2003/VB2005 será composta de 3 projetos conforme descritos a seguir:
Vou apresentar neste artigo o Projeto CamadaDeNegócios. O principal arquivo desta camada é o arquivo Pessoa.vb no qual esta a definição da classe Pessoa. Esta classe representa o conceito único de Pessoa e define os métodos/propriedades que podemos aplicar aos nossos objetos gerados a partir da instância desta classe. Esta classe define os seguintes métodos propriedades:
Propriedades : Nome, Endereco, Cidade, Estado, CodPostal, Telefone, Email, DadosModificados e Contatos
Métodos : Excluir, Incluir, Modificar, Observar e ObservarContatos
Abaixo temos a estrutura da classe :
A primeira vista notamos que a classe Pessoa usa as seguintes declarações de importação:
Imports
System.DataAlém disto a classe também possui variáveis membros, propriedades e métodos assim discriminados:
1- Variáveis de instância da classe Pessoa
'define as propriedades da classe Pessoa (todas do tipo Private) 'com isto o acesso aos membros somente pode ser feitas via propriedades (que são Public) Private _nome As String = String.EmptyPrivate _endereco As String = String.Empty Private _cidade As String = String.Empty Private _estado As String = String.Empty Private _codPostal As String = String.Empty Private _telefone As String = String.Empty Private _eMail As String = String.Empty Private _modificado As Boolean = False |
2- Propriedades da classe Pessoa :
Public
ReadOnly
Property Nome()
As
String
Get Return _nome End Get End PropertyPublic Property Endereco() As String Get Return _endereco End Get Set(ByVal Value As String) _endereco = Value _modificado = True End Set End PropertyPublic Property Cidade() As String Get Return _cidade End Get Set(ByVal Value As String) _cidade = Value _modificado = True End Set End PropertyPublic Property Estado() As String Get Return _estado End Get Set(ByVal Value As String) _estado = Value _modificado = True End Set End PropertyPublic Property CodPostal() As String Get Return _codPostal End Get Set(ByVal Value As String) _codPostal = Value _modificado = True End Set End PropertyPublic Property Telefone() As String Get Return _telefone End Get Set(ByVal Value As String) _telefone = Value _modificado = True End Set End PropertyPublic Property EMail() As String Get Return _eMail End Get Set(ByVal Value As String) _eMail = Value _modificado = True End Set End PropertyPublic ReadOnly Property DadosModificados() As Boolean Get Return _modificado End Get End PropertyPublic Shared ReadOnly Property Contatos() As DataTable Get If Not AgendaBD.DadosCarregados Then AgendaBD.carregarDados() End If Return AgendaBD.Dados End Get End Property
|
Estas propriedades tem o objetivo de permitir o acesso aos dados da classe de forma encapsulada.
2- Métodos da classe Pessoa :
a-) Excluir - Verifica se o nome informado é válido e invoca o método ExcluirReg da classe AgendaBD para excluir o registro passando o nome do contato como parâmetro.
Public
Function Excluir() As
Boolean
_nome = String.Empty Return True Else Return False End If ElseReturn False End If End Function |
b-) Incluir - Utiliza o método NovoReg da classe AgendaBD passando o nome do cliente como parâmetro para incluir um novo cliente.
Public Shared
Function Incluir(ByVal
Nome As
String)
As
Boolean Return AgendaBD.NovoReg(Nome) End Function |
c-) Modificar - Verifica se houve modificação nos dados e se o nome não esta vazio. Neste caso preenche o array _dados() com os valores do datatable. Em seguida usa o método ModificaReg() passando o array como parâmetro e retorna True alterando o valor da variável _modificado para False.
Public Function Modificar() As BooleanIf (_modificado) And (_nome <> String.Empty) Then Dim _dados(7) As String _dados(0) = _nome _dados(1) = _endereco _dados(2) = _cidade _dados(3) = _estado _dados(4) = _codPostal _dados(5) = _telefone _dados(6) = _eMail If AgendaBD.ModificarReg(_dados) Then _modificado = False Return TrueElse Return False End If ElseReturn False End If End Function |
d-) Observar - Verifica se o nome esta vazio, senão estiver cria um datarow para exibir os dados de um cliente com o nome informado como parâmetro. A seguir atribui os valores as variáveis membros da classe.
Public Function Observar(ByVal Nome As String) As BooleanIf Nome <> String.Empty Then Dim dr As DataRow = AgendaBD.ExibirPessoa(Nome) If Not IsNothing(dr) Then _nome = dr("Nome").ToString() _endereco = dr("Endereco").ToString() _cidade = dr("Cidade").ToString() _estado = dr("Estado").ToString() _codPostal = dr("CodPostal").ToString() _telefone = dr("Telefone").ToString() _eMail = dr("EMail").ToString() _modificado = False Return True ElseIf _nome <> String.Empty Then _nome = String.Empty End If Return False End If ElseReturn False End If End Function |
e-) ObservarContatos - Carrega os dados do arquivo XML.
'método
estático ou método de classe e Public Public Shared Sub ObservarContactos()
'carrega dados do arquivo xml End Sub |
Você notou que a classe Pessoa utiliza a classe AgendaBD para fazer o acesso aos dados que estão armazenados em um arquivo XML.
Que tal fazermos a representação UML da classe Pessoa. Apenas para lembrar vamos revisar alguns conceitos :
"A Unified Modeling Language ('UML) é uma linguagem de modelagem não proprietária de terceira geração. Ela não é um método de desenvolvimento, o que significa que ela não diz para você o que fazer primeiro e em seguida ou como desenhar seu sistema, mas lhe auxilia a visualizar seu desenho e a comunicação entre objetos." - Wikipedia
A representação de classes em diagramas UML contempla três tipos básicos de informação: o nome da classe, os seus atributos e os seus métodos. Graficamente, um retângulo com três compartimentos internos representa esses grupos de informação:
- (privativo), nenhuma
visibilidade externa;
+ (público), visibilidade externa total; e
# (protegido), visibilidade externa limitada.
A representação UML da classe Pessoa poderia ser feita, de forma simplificada, assim :
Pessoa |
|
|
A classe Pessoa depende da classe AgendaBD pois utiliza objetos desta classe. A representação UML para esta ocorrência é dada a seguir:
nota: A classe Pessoa usa os métodos excluirReg(), ExibirPessoas(),etc. da classe AgendaBD.
Nota: Esta representação foi obtida no BlueJ . O BlueJ é um ambiente integrado Java especialmente criado para ensinar os conceitos da OOP.
Acompanhe o próximo artigo : VB.NET - Aplicação de acesso a dados em 3 camadas - parte 3
Te aguardo no próximo artigo VB.NET ...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a Objetos com VB .NET