[delphi] Classe abstraite

Classe abstraite [delphi] - Delphi/Pascal - Programmation

Marsh Posté le 01-10-2006 à 13:35:12    

Bonjour messieurs,
 
J'ai jamais été doué pour ce genre de choses, donc je viens demander votre avis.
 
J'ai, pour mon programme, besoin d'une classe abstraite. En effet, certaines méthodes sont communes, d'autres spécifiques à certains critères. En l'occurence, il s'agit du logiciel monitorant la température et les tensions de l'ordinateur. Autant récupérer un TStringList contenant les valeurs "correctes" en termes de températures est commun ( une température de -65535 est pas possib' par exemple ), autant récupérer une température en particulier est sépcifique ( format de la valeur ( entier, flottant) et co ).
 
A l'heure actuelle, j'ai qu'une seule classe concrète, qui implémente tout, et qui gère les fonctions spécifiques avec un bête branchement ( une paire de case en l'occurence ).
 
Je voudrai simplifier le tout, surtout que je vais implémenter de plus en plus de logiciels différents dans mon programme.
 
D'ou : classe abstraite. ca donnerait un truc du genre :
 
TLogDeMonito : classe abstraite
TMBM5 : classe qui implémente TLogDeMonito pour Motherboard Monitor 5
TSpeedfan : idem mais speedfan
...
 
Etc.
 
Seulement, est'il possible, dans mon programme principal, de tout regrouper dans un seul objet, et de ne pas avoir à déclarer tous les cas ?
 
Car si je continue ainsi, dans mon programme principal, je vais avoir un objet MBM5 : TMBM5 , et SpeedFan : TSpeedFan. Moi, je ne voudrais qu'un seul objet Monitoring : TLogDeMonito; que j'apelle sans me poser de questions dans le proramme principal, le choix du logiciel se faisant à l'initialisation de l'objet, et ce, sans avoir à foutre des cases partout ?
 
Merci d'avance :)

Reply

Marsh Posté le 01-10-2006 à 13:35:12   

Reply

Marsh Posté le 03-10-2006 à 20:51:00    

oui oui c'est possible
a condition d'avoir ta classe parente avec les méthodes virtuelles...
 
regarde du coté du pattern Factory aussi...

Reply

Marsh Posté le 23-10-2006 à 23:58:47    

Je réponds en retard mais merci, vais surement faire comme ca :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed