Marcos Douglas wrote: > João, > Poderia descrever um exemplo do caso que vc precisa fazer isso?
Yep. TPressObject +-TPressQuery TPressAttribute +-TPressString +-TPressInteger +-TPressReference TPressObjectMetadata +-TPressQueryMetadata TPressAttributeMetadata +-TPressQueryAttributeMetadata Cada classe de metadata possui informações de runtime dos objetos de negócio. Um ObjectMetadata possui um ponteiro à classe, informações de persistência (pretendo tirar deste nível), etc. Um QueryMetadata possui ainda um ponteiro à classe que é comum a todos os objetos da Query. Até aqui tudo bem. Um AttributeMetadata possui informações como Size (string), Min e Max (Integer) ou ObjectClass (um ponteiro da classe base do Reference), além de informações comuns a todos como Calc. Para as informações específicas de cada atributo poderiam ser criadas novas classes de metadata, uma para cada tipo de atributo, mas o problema é o QueryAttributeMetadata: esta classe possui o campo Category que deve ser incluído em todos os tipos de atributo. Então o que fiz? Criei um único AttributeMetadata que, ao mesmo tempo que possui coisas como Size, Max, Min, possui ObjectClass que não tem nada a ver com atributos simples. Fiz isto para não criar várias vezes a mesma propriedade em classes diferentes. -- João Morais > mD > > ---- Mensagem Original ---- > From: "Joao Morais" <[EMAIL PROTECTED]> > To: delphi-br@yahoogrupos.com.br > Sent: Ter, Dezembro 5, 2006 11:51 am > Subject: Re: [delphi-br] Re: Usar ou não usar DBWares? Eis a > questão! > >> Juliano Carvalho - Folhamatic wrote: >> >>> Se a questão for somente propriedades fica mais fácil (ou menos dificil) >>> resolver com interface. Ou estas propriedades são altamente complexas? >> Neste caso elas sequer possuem implementação, nem precisam de getter ou >> setter. São propriedades publicadas. Interface só vai deixar mais >> complicado, então preferi montar uma classe "um por todos", sobrando >> propriedade em alguns casos. Não resolveu com elegância, mas resolveu. >> >> -- >> João Morais >> > > > >