Alexandre Rodrigues wrote:
> O que faço é carregar a(s) estrutura(s) dentro de objetos responsáveis 
> por elas como variáveis privadas. Se qualquer outro objeto quiser 
> acessar algumas das estruturas terá que fazer através das funções e 
> propriedades desses objetos.
> Não é o melhor mas é o que conseguir fazer até o momento. Se tiver 
> alguma outra dica, agradeço.

Há alguns fatores que devem ser levados em conta, como necessidade de 
reaproveitamento, quantidade de estruturas diferentes, quão estática é a 
estrutura, etc.

São três caminhos que eu seguiria:

1. Caso a estrutura seja suficientemente estática, criaria um record 
simples que abra espaço para os meus dados. Arrays estáticos, tipos 
simples, e abusaria de move e fillchar para ganhar algum tempo.

2. Se a estrutura for dinâmica (ou seja, os tamanhos de strings e das 
matrizes podem variar muito), eu optaria por implementar a tradução 
estrutura <-> blob em uma classe. Talvez fizesse uso de métodos virtuais 
para o read e o write, a fim de utilizar estas classes em algum 
algoritmo que trabalhe diretamente com o banco e evitar acoplamento. 
Depende de como é o restante da sua implementação.

3. Aproveitar as classes de persistência e streaming do próprio Delphi. 
É questão de ver como que se comportam propriedades publicadas e com 
índices, que simulariam as suas matrizes.

Seja qual for o caminho, vai ser divertido.

Joao Morais

Responder a