Bonjour a tous, j'ai un petit probleme de conception avec un programme PHP orienté objet :
Le probleme est que j'ai une classe qui est aussi bien du type classe1 que classe2 (elle a besoin d'implementer doSomething1 et doSomething2).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 abstract class classemere { public function doSomething() { ... } abstract public function test(); } abstract class classe1 extends classemere { private $property1; public function doSomething1() { ... } } abstract class classe2 extends classemere { private $property2; public function doSomething2() { ... } } // PUIS des classes dérivées de classe1 et de classe2
En PHP, il n'est pas possible de faire de l'héritage multiple pour les classes, seulement pour les interfaces.
Mais les interfaces ne me permettent que d'avoir les signatures des methodes, pas d'avoir des propriétés ni le code des méthodes.
Donc pour l'instant j'ai ma classe qui dérive de classe1 et un copié collé du code de la classe2 pour implémenter les 2 classes.
J'imagine que ce n'est vraiment pas la meilleure solution (de copier coller du code), et j'ai lu que l'héritage multiple (j'ai vu quelques techniques pour le simuler sur PHP) est vraiment une mauvaise solution qui ne dois s'appliquer que dans de très rares cas (en plus je pense que j'aurai un probleme avec la methode abstraite test() qui serait dans les 2 classes parentes).
Je ne sais pas si je suis dans un de ces rare cas ou bien si ma conception est mauvaise.
Si quelqu'un peut m'aider, Merci
Partager