1

Je sais qu'en PHP on ne peut pas faire d'héritage multiple (PHP 5.3), mais je me demandais quelle serait, à votre avis, la meilleure solution pour déclarer et implémenter la situation suivante :
tromb Fichier joint : 5JVG (Diagramme de classes.png)

Si j'utilise des interfaces, sauf erreur de ma part, je suis de toutes façons obligé d'avoir du code en double, non ?
avatar

2

ben je m'embeterais, pas, je mettrais le password directement dans le user...
Ancien pseudo : lolo

3

itoo (quitte à flag-izifier celui ci au niveau de l'interface)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

4

de l'héritage multiple cache en général un pb de typage.
Et cela se résout par de la composition: dans User tu ajoutes un attribut qui pointe vers une instance de PasswordManager

Depuis que j'ai pigé ca je fais du code bien plus modulaire.

5

Yep, mais même si on peut s'en passer, l'héritage multiple est quand même cool dans certains cas (délégation) et dans d'autres surtout niveau perfs smile
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

6

vince (./3) :
itoo (quitte à flag-izifier celui-ci au niveau de l'interface)

Ca, je ne peux pas me le permettre... je veux pouvoir diffuser la classe pour que d'autres services puissent faire des développements. Mais c'est vrai que je peux faire une vérification en fonction de userCredentials.
Spipu (./2) :
ben je m'embeterais, pas, je mettrais le password directement dans le user...

Oui, j'y ai pensé, ça revient à ma réponse à vince, mais je risque d'avoir d'autres profils de gestionnaires avec le temps (genre un qui gère les demandes d'accès aux ressources, etc.). Effectivement, je peux faire un filtrage avec userCredentials pour chaque opération, mais je trouve que c'est un peu crado.
avatar

7

Brunni (./5) :
Yep, mais même si on peut s'en passer, l'héritage multiple est quand même cool dans certains cas (délégation) et dans d'autres surtout niveau perfs smile

Si tu penses que tu vas avoir des pb de perf à cause d'un simple appel à une fonction, alors ton soucis de perf est en fait le langage que tu as choisi, il vaudrait mieux éviter un langage objet !

8

Hmm, soit j'ai pas compris la phrase de Brunni (fort possible), soit on a pas lu les mêmes mots… trifus
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

9

Je pense que hibou n'a pas lu les mêmes mots cheeky
avatar

10

humm....... hum what
bon j'ai relu 4 fois la phrase de Brunni, ben je persiste et signe tongue

C'est peut-être moi qui est trop raccourcis ?
Ce qui me choque c'est ca: "l'héritage multiple est quand même cool [...] surtout niveau perfs"
Utiliser la composition au lieu de l'héritage multiple c'est dans notre exemple passer de:
user.changePassword(...)
à
user.getPasswordManager().changePassword(...)

=> un appel de fonction de plus. D'où mon post.

J'suis toujours à coté de la plaque ? cheeky

11

En effet je me suis planté de mot, remplace délégation par adaptation.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741