IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

Java => problème héritage


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Par défaut Java => problème héritage
    Bonjour,
    je suis débutant en java, et j'ai un soucis avec un héritage un peu spécial.
    En fait, c'est pour un projet de gestion de bus, autobus, passagers etc...
    Donc, j'ai une interface Transport qui est implémenté par un Autobus, une interface Passagers qui est implémenté par différents type de passagers. Enfin, j'ai une classe de test (contenant le main) qui exécute une suite d'événements sur le bus (montée/descente/etc.. de passagers).
    Je voudrais faire une classe de journalisation qui viens se gréfer dans mon bazard sans aucune modification de la classe Bus. Le principe est de journaliser chaque actions du bus (montée de passagers/déplacements/etc...).
    J'ai essayé en faisait appel dans le main à ma classe de journalisation au lieu du bus et que toutes les actions vers le bus sont transférés vers la classe bus. Mais comment faire ??

    Merci de votre aide

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut
    Bonsoir, utilise le design pattern Decorateur. Tu encapsules ton instance de Bus dans un objet JournaliseurTransport qui implémente la même interface, soit Transport, et partout dans ton main tu remplaces l'instance de Bus par l'instance de JournaliseurTransport :
    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
    class JournaliseurTransport implements Transport {
      Transport transport;
      Logger log;
      public JournaliseurTransport(Transport transport) {
        this.transport = transport;
        log = new Logger();
      }
     
      public void monterPassagers(int n) {
        log.trace("montée de " + n + " passagers");
        transport.monterPassagers(n);
      }
     
      public void deplacer(Lieu lieu) {
        log.trace("déplacement vers " + lieu);
        transport.deplacer(lieu);
      }
     
      ..
    }
     
    main(...) {
      Bus bus = new Bus(...);
      JournaliseurTransport jt = new JournaliseurTransport(bus);
     
      ...
      bus.monterPassagers(3);
      bus.deplacer(rue);
      ...
    }

Discussions similaires

  1. Problème Héritage JavaScript
    Par Flavien dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/07/2006, 13h29
  2. Problème héritage CWnd
    Par ptitJP dans le forum MFC
    Réponses: 4
    Dernier message: 21/04/2006, 11h41
  3. [Java][Xpath] Problème pour rédiger une expression
    Par althea_vestrit dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 23/01/2006, 20h53
  4. [Java 2D] problème de composition d'images
    Par wwave dans le forum 2D
    Réponses: 4
    Dernier message: 11/07/2005, 12h28
  5. [Debutant Java JOGL] problème glVertexPointer()
    Par Stef784ever dans le forum OpenGL
    Réponses: 2
    Dernier message: 21/04/2004, 17h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo