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 :

Interface et constructeur


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 65
    Par défaut Interface et constructeur
    Bonjour,

    je souhaite écrire une interface qui permette de définir un patron générique à de futures implémentations qui ne seront pas de mon ressort.

    Le problème est que ces implémentations ont besoin d'un paramètre bien particulier afin de bien initialiser l'objet.

    En gros j'aimerais pouvoir définir dans l'interface un constructeur qui prenne par exemple une String (qui serait le paramètre obligatoire pour initialiser l'objet) or cela n'est pas possible dans une interface.

    Je n'ai pas trouvé d'autre moyen que de créer un setter qui passerait une String afin d'initialiser mais ce qui me dérange c'est comment être certaine que le setter sera bien appelé avant toutes les autres méthodes de l'interface ?

    En gros avec le code ci-dessous j'aimerais que les implémentations de cette interface appellent en premier la méthode setParam et ensuite la méthode useParam() mais je ne vois pas comment le contraindre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public interface ExempleInterface {
        public void setParam(final String eParam);
     
        public void useParam();
    }
    Avez-vous des idées ?

  2. #2
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu prends une mauvaise direction : tu n'as pas à prendre en compte les spécificités des implémentations dans une interface. Tu ne doit décrire ici que le contrat, c'est à dire les méthodes qui devront être implémenté, mais surtout pas son fonctionnement interne...

    a++

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Et j'ajoute que définir un paramètre obligatoire dans le constructeur utilisé par des implémentations, c'est le travail d'une classe abstraite. Classe abstraite qui peut très bien implémenter l'interface en question, tant qu'à faire.

    Du coup, certaines classes peuvent implémenter l'interface sans pour autant étendre la classe abstraite faite pour ça, mais ce n'est pas un problème, si les implémenteurs ne veulent pas utiliser les outils fournis c'est leur affaire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. IDE avec constructeur d'interface graphique
    Par lostsoul dans le forum Débuter
    Réponses: 12
    Dernier message: 14/12/2010, 18h02
  2. Interface et constructeur
    Par talrashha dans le forum Modélisation
    Réponses: 1
    Dernier message: 29/06/2010, 18h31
  3. Réponses: 4
    Dernier message: 11/04/2008, 11h36
  4. Constructeur et interface
    Par ToTo13 dans le forum Langage
    Réponses: 4
    Dernier message: 09/04/2008, 09h18
  5. [Conception] Interface et constructeur
    Par Sancho dans le forum Langage
    Réponses: 5
    Dernier message: 23/12/2004, 10h07

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