Fórum Classe X Record #363679
10/09/2008
0
Ambos são muito parecidos na sua aplicabilidade, correto?
O que devo levar em consideração ao utilizar um ou outro?
Obrigado
Armindo
Curtir tópico
+ 0Post mais votado
10/09/2008
Eles são muito diferentes um do outro. No uso de classes vc tem flexibilidade e manutebilidade de código bem maiores.
Também não adianta vc utilizar classes, caso vc vá programar com elas da mesma forma que vc programa com records. Você vai estar não vai estar utilizando todos os recursos que a programação orientada a objetos pode te oferecer.
Adoniram
Gostei + 1
Mais Posts
10/09/2008
Brunodsr
Use um record como repositório de dados. Use uma classe apenas se existirem ações atreladas a ela ou se você quiser manipular alguns dados ou encapsular dados/métodos. Ex.:
[b:5e74807d5e]Digamos que vc queira guardar uma série de dados de um cliente:[/b:5e74807d5e]
Se não haverá qualquer regra para armazenar estes dados e se todos eles serão disponibilizados ´puramente´ e ainda nenhuma ação relacionada com eles será tomada, use um record.
TCliente = record ID: Integer; Nome: String; ... ... end;
Já se você quer definir regras de atribuição de valores ou mesmo quer esconder valores e definir ações para esse repositório, você deve usar uma classe. É mais prático e mais seguro.
//Classe responsavel pelo cadastro de clientes Cliente = class private fNome :String; fCPF : String; fIdade: Integer; //Funções de leitura/escrita em propriedades da classe procedure setCPF(nCPF:String); function getCPF:string; procedure setNome(sNome:String); procedure setIdade(nIdade: integer); //Funcoes para validacao privadas para a classe Function ValidaCPF(nCPF:String):Boolean; Function FormataCPF(nCPF:String; Formatacao: Formatacao):String; public property Nome: string read fNome write setNome; property CPF : String read getCPF write setCPF; property Idade: integer read fIdade write setIdade; //Funcoes para validacao publicas para a classe Function ClassificaCPF(nCPF: String):classificacao; end;
Com essa classe, eu consigo proteger os seus atributos e exibir os dados da forma que eu achar mais conveniente. Além do mais, posso ter funções específicas pertencentes a essa classe.
Espero ter ajudado.
Gostei + 0
10/09/2008
Armindo
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)