class, surcharge, incompréhension. - Python - Programmation
Marsh Posté le 13-01-2005 à 21:50:48
| Code : 
 | 
 
 
 
 
si tu veux un truc passe partout plutot que la fonction void 
 
http://cvs.gnome.org/viewcvs/gdesk [...] iew=markup 
 
self.emit = Null 
 
et là t'es blindé
Marsh Posté le 13-01-2005 à 22:12:14
si tu dois vraiment changer le comportement en profondeur,; il faut te tourner vers le Design Pattern Stratégie. Tu peux la jouer: 
 
- classique : tu délègues. Ta classe n'as qu'un seul attribut "self.__impl" que tu changes à souhait. "self.__impl = NullImpl()" par exemple, pour le reste, pour chaque méthode de ta classe de façade, il faut déléguer (tu peux le faire manuellement ou faire ça tout seul avec __getattr__ 
 
- rebelle : tu peux changer de __class__ à la volée 
Marsh Posté le 13-01-2005 à 23:01:55
Design Pattern strategy ![[:alph-one] [:alph-one]](https://forum-images.hardware.fr/images/perso/alph-one.gif) 
 
 
non attends t'enflammes pas, je vais déja regarder tout çà tranquillement et à tête reposée et essayer de comprendre.. 
 
si tu veux le résultat que j'essayes d'obtenir, je pourrais le faire facilement 
mais surement pas de façon pratique et élégante et c'est ce que j'essayes de faire, 
toujours à mon niveau biensur hein, mais j'avances pas vite par contre   
   
 
en tous les cas je te remercies, et je vais tester tout çà  
   
  
Marsh Posté le 13-01-2005 à 23:40:05
DesignPattern Stratégie : t'as une façade et derrière différentes implémentations aux comportements différents. Tu changes la partie arrière à ta guise (ici, désactivation de certaine méthodes) sans qu'en façade l'interface ne change. 
 
 
 
Sinon, mon exemple, l'est pas bon pour toi ?
Marsh Posté le 13-01-2005 à 23:41:30
http://www.dofactory.com/Patterns/PatternStrategy.aspx 
 
les exemples C# sont compréhensibles il me semble
Marsh Posté le 14-01-2005 à 17:03:20
| Taz a écrit :   | 
 
ca fonctionne, mais c'est pas ce que je veux faire 
 
| Code : 
 | 
 
 
ca marche, mais je veux me servir de ma classe NullHandler qui est fait pour çà, plutôt que d'être obligé de créer une nouvelle méthode null et de l'assigner à emit. 
 
| Citation : - rebelle : tu peux changer de __class__ à la volée  | 
 
self.__class__ = NullHandler 
bha ca me va bien ca, hier j'ai pourtant testé et mon emit n'était plus appelé   , mais là ca fonctionne nickel, ca risque rien de changer de classe comme ca ?
 , mais là ca fonctionne nickel, ca risque rien de changer de classe comme ca ? 
 
merci pour tout.  
 
 
 
 
Marsh Posté le 14-01-2005 à 22:35:34
rebinder __class__ c'est plus compliqué ça. Et c'est pas très sur. Moi je te conseille de te pencher sur le Strategy Pattern
Marsh Posté le 13-01-2005 à 20:33:51
j'ai une classe de base Handler
ensuite j'ai une classe Null qui hérite de Handler.
mais qui change emit (surcharge c'est çà ?)
et une autre class Console qui hérite de Handler aussi.
et je captes pas comment faire pour surcharger les méthodes de la classe
Console par celle de Null à partir de Console.handleError, merci d'avance.