Back-End

28 jan, 2008

Array de objeto em ASP

Publicidade

Primeiramente gostaria de agradecer esta oportunidade dada pela equipe do iMasters. É sempre bom e prazeroso compartilharmos conhecimentos e pontos de vistas diferentes. Agradeço de coração esse espaço para que eu possa contribuir com o que tenho de bom com todos vocês.

A moda hoje em dia é programar orientada a objetos (POO). Isso é fato. Para aqueles que ainda desenvolvem códigos estruturados, estão perdendo o grande glamour e as facilidades que os códigos POO tem a oferecer ao desenvolvedor. Várias tecnologias Web já aderiram, ou estão em fase de mudança, para que possam suportar esse novo paradigma. A tecnologia Java dispensa comentários. Grande parte da sua estrutura é orientada a objetos. Outras como PHP 5 e ASP.NET também podem ser programadas utilizando este conceito.

Mas para que uma tecnologia possa mesmo ser considerada orientada a objetos, algumas características importantes devem ser observadas, tais como: abstração,encapsulamento, herança, polimorfismo, interfaces entre outros. É obvio que falar de OO vai muito além disso. Mas o que fazer com tecnologias, como o ASP, que não oferecem todos esses recursos para uma POO? De fato as classes feitas em ASP não permitem herança, polimorfismo e tampouco interfaces. Entretanto podemos utilizar o que a tecnologia tem disponível em prol do desenvolvedor. Neste texto será apresentado um exemplo de array de objetos em ASP. Não é nenhum ArrayList do Java mas poderá ajudar muitos desenvolvedores que buscam algo parecido em ASP.

Considerem uma classe chamada clientes como exemplo genérico. São propriedades de um cliente possuir um nome, rg, cpf, telefone e data de nascimento. Então vamos a classe:

'Classe responsável em criar objetos do tipo cliente
'e seus respectivos métodos get e set
Class Cliente
	'Declara as propriedades da classe Cliente
	private nome
	private cpf
	private rg
	private telefone
	private dataNascimento
	
	'NOME	
	Public sub setNome(vNome)
		nome = vNome
	End sub
	
	Public Property  get getNome() 
		getNome = nome
	End property
	
	'CPF
	Public sub setCpf(vCpf)
		cpf = vCpf
	End sub
	
	Public Property  get getCpf()
		getCpf = cpf
	End property
	
	'RG	
	Public sub setRg(vRg) 
		rg = vRg
	End sub
	
	Public Property get getRg()
		getRg = rg
	End property
	
	'TELEFONE
	Public sub setTelefone(vTelefone)
		telefone = vTelefone
	End sub
	
	Public Property get getTelefone()
		getTelefone = telefone
	End property
	
	'DATA NASCIMENTO
	Public sub setDataNascimento(vDataNascimento)
		dataNascimento = vDataNascimento
	End sub
	
	Public Property get getDataNascimento()
		getDataNascimento = dataNascimento
	End property
	
End Class

A classe cliente não possui nenhum mistério. Suas propriedades estão encapsuladas com seus respectivos métodos set e get para alteração e retorno dos seus valores. Agora vamos criar um array de objetos utilizando esta classe. Primeiramente criaremos um array comum chamado: arrayObjCliente.

'Cria um array com três índices
Dim arrayObjCliente(3)

Em seguida criaremos uma instância para cada índice desse array.

'Cria uma instância para cada índice desse array
Set arrayObjCliente(0) = new Cliente
Set arrayObjCliente(1) = new Cliente
Set arrayObjCliente(2) = new Cliente

Dessa forma cada índice desse array será um objeto Cliente com suas propriedades e métodos. O próximo passo será setar os valores para cada objeto desse array.

'O primeiro índice será o objeto do cliente Marcos com suas propriedades(nome,reg cpf, telefone e data de nascimento)
arrayObjCliente(0).setNome("Marcos")
arrayObjCliente(0).setCpf(123456786)
arrayObjCliente(0).setRg(245687)
arrayObjCliente(0).setTelefone(33456778)
arrayobjCliente(0).setDataNascimento("14/12/1985")

'O segundo índice será o objeto da cliente Fernanda com suas propriedades(nome,reg cpf, telefone e data de nascimento)
arrayObjCliente(1).setNome("Fernanda")
arrayObjCliente(1).setCpf(6546549879)
arrayObjCliente(1).setRg(5646458)
arrayObjCliente(1).setTelefone(23144656)
arrayobjCliente(1).setDataNascimento("25/01/1979")

'O terceiro índice será o objeto do cliente Paulo com suas propriedades(nome,reg cpf, telefone e data de nascimento)
arrayObjCliente(2).setNome("Paulo")
arrayObjCliente(2).setCpf(8979875465)
arrayObjCliente(2).setRg(131654)
arrayObjCliente(2).setTelefone(5564897)
arrayobjCliente(2).setDataNascimento("12/05/1982")

Pronto! Está criado o array de objetos Cliente. Agora basta percorrer cada índice desse array para recuperar os valores de cada objeto utilizando o método get.

Abaixo é mostrada uma estrutura de repetição na qual irá percorrer cada índice do array de objetos

Dim i

'Laço de repetição que imprime na tela do usuário
'os valores dos objetos de cada índice utilizando o método get.
for i = 0 to (Ubound(arrayObjCliente)-1)
	Response.Write("Nome:"&arrayObjCliente(i).getNome&"<br/>")
	Response.Write("RG:"&arrayObjCliente(i).getRg&"<br/>")
	Response.Write("CPF:"&arrayObjCliente(i).getCpf&"<br/>")
	Response.Write("Telefone:"&arrayObjCliente(i).getTelefone&"<br/>")
	Response.Write("Data de Nascimento:"&arrayObjCliente(i).getDataNascimento&"<br/><hr /><br />")
	Set arrayObjCliente(i) = Nothing 'Destroí o objeto criado em memória
Next

No final irá retornar para o usuário algo parecido como:

Conclusão

Mesmo não sendo uma tecnologia orientada a objetos, o ASP ainda pode oferecer alguns recursos interessantes que só podemos encontrar nessas plataformas OO. Para aqueles que acham que esse exemplo não vai ajudar em muita coisa, na próxima coluna mostrarei um exemplo prático utilizando classes e conexão com banco de dados envolvendo este conceito.

Veja o código na integra aqui.