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

Java Discussion :

[Architecture] Question d'architecture


Sujet :

Java

  1. #1
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 139
    Points
    139
    Par défaut [Architecture] Question d'architecture
    Bonjour,

    J'ai une petite question d'architecture. J'ai une interface Communication et deux implementations: CarCommunication et HotelCommunication. Ces deux classes font la communication avec des fournisseurs de voitures et d'hotels. Ces classes sont instanciees depuis une fabrique (CommunicationFactory). Maintenant, j'aimerai que suivant certaines variables d'environnement, la fabrique instancie une autre classe qui joue un peu le role d'un mock object. Grosso modo, cette classe lit des fichiers XML et les renvoie aux classes clientes. Donc cette classe peut etre independante du produit (Hotel, Car...). J'ai pense a une premiere solution qui consistait a cree une nouvelle classe par produit (ex: HotelMockCommunication..) qui herite de la vrai classe de communication, le probleme est que le code entre HotelMockCommunication et CarMockCommunication va etre le meme, donc il est un peu bete d'avoir deux classes differentes qui font la meme chose.

    Si vous avez des idees. J'espere avoir ete assez clair.

    Merci d'avance.

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par bourbaki2003
    J'ai pense a une premiere solution qui consistait a cree une nouvelle classe par produit (ex: HotelMockCommunication..) qui herite de la vrai classe de communication, le probleme est que le code entre HotelMockCommunication et CarMockCommunication va etre le meme, donc il est un peu bete d'avoir deux classes differentes qui font la meme chose.
    Cette solution me parait effectivement être la bonne. Après, rien ne t'empeche de mutualiser le code dans une class MockCommunication, par exemple, et de faire simplement de la délégation dans HotelMockCommunication.

    En fait, la vrai solution propre, serait que HotelCommunication soit une interface (idem pour CarCommunication), et d'avoir un MockCommunication qui implémente les deux, plus des vrais implementation HotelCommunicationImpl et CarCommunicationImpl.

    Mais bon, à toi de voir jusqu'à quelle compléxité de la chose il est intéressant d'aller....

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 194
    Points : 234
    Points
    234
    Par défaut
    Pour quelle raison as-tu écris les classes HotelMockCommunication et CarMockCommunication ?

    Si c'est pour répondre à l'écriture de ton "mock object", à mon avis, il aurait fallu y répondre soit en modifiant la hiérarchie d'héritage de CarCommunication et HotelCommunication pour qu'elles héritent de ta classe mock object et non l'inverse, soit que ces classes implémentent une interface commune déclarant les méthodes appelées ailleurs (apparemment Communication).

  4. #4
    Membre expérimenté
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Points : 1 638
    Points
    1 638
    Par défaut
    Citation Envoyé par had35
    Pour quelle raison as-tu écris les classes HotelMockCommunication et CarMockCommunication ?

    Si c'est pour répondre à l'écriture de ton "mock object", à mon avis, il aurait fallu y répondre soit en modifiant la hiérarchie d'héritage de CarCommunication et HotelCommunication pour qu'elles héritent de ta classe mock object et non l'inverse, soit que ces classes implémentent une interface commune déclarant les méthodes appelées ailleurs (apparemment Communication).
    Hello,

    Je pense qu'un Mock Object ne doit pas intervenir dans la hiérarchie des classes de l'application. cela doit être une classe qui vient se greffer temporairement et supprimer lors de mise en production.

    Citation Envoyé par bourbaki2003
    qui herite de la vrai classe de communication, le probleme est que le code entre HotelMockCommunication et CarMockCommunication va etre le meme, donc il est un peu bete d'avoir deux classes differentes qui font la meme chose.
    Tu indiques que le code va être le même, donc effectivement il n'y a pas grand intéret. Mais normalement une classe mock Object n'est pas implémentée, normalement, imiter une source de données (ou similaire)? donc le code doit être forcement différent..

    Citation Envoyé par denisC
    En fait, la vrai solution propre, serait que HotelCommunication soit une interface (idem pour CarCommunication), et d'avoir un MockCommunication qui implémente les deux, plus des vrais implementation HotelCommunicationImpl et CarCommunicationImpl.
    Est ce que l'on ne perd pas l'interet de l'interface si on créé deux interfaces (hotel et car)? L'interet d'avoir une interface commune entre les deux classes permet de manipuler les classes sans se soucier du type réel de la classe d'implémentation. non?

    Ca s'appelle un post tire-groupé
    @+

    Fabszn
    Twitter : @fsznajderman

    N'oubliez pas le bouton
    Comment bien poser ses questions sur le forum


Discussions similaires

  1. [C# 2.0] Question d'architecture - code dynamique
    Par StormimOn dans le forum Framework .NET
    Réponses: 11
    Dernier message: 06/03/2007, 11h19
  2. [Création d'un moteur] Petite question d'architecture technologique
    Par ludovic85 dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 07/02/2007, 18h00
  3. [JPanel] [GUI] question d'architecture
    Par _KB_ dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 15/06/2006, 15h10
  4. [Architecture] Questions DB, Arch, Tech pour un project
    Par Ultiny dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 02/05/2006, 15h04
  5. [Architecture] Question data layer et présentation
    Par brousaille dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 16
    Dernier message: 14/01/2006, 12h48

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