Interface et heritage

Résolu
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 - 2 juin 2006 à 15:21
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 - 8 juin 2006 à 15:53
salut a tous,
j'ai pense a un truc, et je voudrais votre avis sur le sujet, et savoir si c'est correcte et si ca marchera comme je le souhaite.

J'ai un classe mere et 2 classes heritées. Ce schema se reproduit pour plusieurs classes.
par exemple, j'ai 2 objets de base Obj1 et Obj2 qui suivent ce schema. j'ai donc

    Obj1 = class;

    ihmObj1 = class(Obj1);

    dcdObj1 = class(Obj1);

    Obj2 = class;

    ihmObj2 = class(Obj1);

    dcdObj2 = class(Obj1);

de plus tous mes  objets ihm ont des methodes communes, et pareil pour les dcd.
J'ai donc penser faire des interfaces du style

IModule = interface;
IihmModule = interface(IModule);
IdcdModule = interface(IModule);

et faire heriter mes objets de ces interfaces. par exemple Obj1 deviendra :

    Obj1 = class(IModule);


    ihmObj1 = class(Obj1, IihmModule);


    dcdObj1 = class(Obj1, IihmModule);

je voudrais donc savoir si ca va marcher, et si il y a des points qu'il ne faut pas que j'oublie.

Merci de votre aide :)

2 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
3 juin 2006 à 09:17
Il n'y a pas de raison que cela ne fonctionne pas à condition de respecter les principes de bases.
A ce propos, il faudrait remplacer les déclarations suivantes :
    Obj1 = class(IModule);
    ihmObj1 = class(Obj1, IihmModule);
    dcdObj1 = class(Obj1, IihmModule);

par :
    Obj1 = class( TInterfacedObject , IModule);
    ihmObj1 = class(Obj1, IihmModule);
    dcdObj1 = class(Obj1, IihmModule);

Une classe doit hériter d'un type de base avant de prétendre implémenter une ou plusieurs interfaces.

Ta conception à base d'interfaces est une bonne approche car elle réduit les couplages entre classes.

May Delphi be with you !
<hr color="#008000" />
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
3
Guillemouze Messages postés 991 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 29 août 2013 6
8 juin 2006 à 15:53
merci beaucoup delphiprog :)
0
Rejoignez-nous