Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Base Class, Classe abstrata e Classe concreta
Message
De
30/01/2002 20:27:13
 
Information générale
Forum:
Visual FoxPro
Catégorie:
Programmation Orientée Object
Divers
Thread ID:
00612698
Message ID:
00613156
Vues:
13
This message has been marked as a message which has helped to the initial question of the thread.

>>>Poderia dar um exemplo? Pois sempre que se constroe uma classe base já estamos usando este conceito de forma transparente não?
Até porque não podemos criar classes que não sejam baseadas em outras senão as classes básicas do VFP? Ou estou errado?


Exatamente. E você não pode alterar o comportamento de uma baseclass diretamente nela, correto? A menos que você "hackeie" o VFP, e mexa no códio VC++ dele... :)

A idéia de se criar uma sub-classe de uma baseclass do VFP, que seja uma cópia exatamente igual, e não utilizá-la, pode ser explicada no seguinte exemplo (se for fazer como vocë sugeriu):
define class txtCPF as textbox
   *** blábláblá
enddefine

define class txtCGC as textbox
   *** blábláblá
enddefine
Muito bem, igual ao exemplo acima, você cria uma cacetada de textboxes específicos para suas aplicações. Amanhã, alguém descobre um bug maluco na baseclass do VFP, e outro alguém descobre algum "workaround - vulgo gambiarra", para corrigir o erro. Do jeito que foram criadas as sub-classes, diretamente baseadas na baseclass, você terá que sair de sub-classe em sub-classe alterando-as. Se você utilizar uma "camada isolada", que será a sub-classe abstrata baseada na baseclass, seus problemas estariam resolvidos corrigindo apenas uma classe. Por exemplo:
define class MeuTextboxBasico as Textbox
   *** exatamente igual à baseclass
enddefine

define class txtCPF as MeuTextboxBasico
   *** blábláblá
enddefine

define class txtCGC as MeuTextboxBasico
   *** blábláblá
enddefine
Desta forma, se em algum momento eu precisar alterar o comportamento da baseclass, eu altero a minha "baseclass", já que não posso mexer na do VFP.

Entendeu?

O caso de um bug foi relatado pelo Markus Egger em seu livro, onde os eventos InteractiveChange e ProgrammaticChange não funcionavam direito, e ele resolveu o problema utilizando os métodos Access e Assign na propriedade Value.

Melhorou?
Claudio Lassala
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform