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 :

passage de fonction/méthodes en paramètres


Sujet :

Java

  1. #1
    Membre actif
    Homme Profil pro
    Ingé Indus
    Inscrit en
    Juillet 2014
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingé Indus
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2014
    Messages : 107
    Points : 241
    Points
    241
    Par défaut passage de fonction/méthodes en paramètres
    Bonjour à tous

    J'ai une expérience assez limité en java, donc je viens ici pour avoir un peu d'aide.
    J'ai un problème qui pourrais être attaquer avec le Command pattern, mais je ne suis pas certain.

    J'ai une classe générer (donc non modifiable) d'accès IO du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @Singleton
    public class generatedIO
    {
        public void setX1(boolean value){}
        public boolean getX1(){}
        public void setX2(boolean value){}
        public boolean getX2(){}
        public void setY1(boolean value){}
        public boolean getY1(){}
        //...
    }
    Je souhaite me faire une classe pour géré mes IO par paire
    dans le style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    public class generatedIO
    {
        public void set1();   //generatedIO.setX1(true);
        public void set2();   //generatedIO.setX2(true);
        public void reset();   //generatedIO.setX1(false);generatedIO.setX2(false);
    }
    Comme j'ai beaucoup de "paire" (même plus compliqué en vrai), une telle solution me permettrais de capitaliser la logique.
    Mais je n'arrive pas à mes fin.

    Les contraintes:
    • generatedIO est en singleton. je ne peux pas "refaire" ce que font les fonctions.
    • JAVA 7, donc pas de lambda et autre nouveauté


    Merci pour toute aide.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    les lambdas ne sont qu'une manière plus efficace et plus pratique de faire la même chose que les classes anonymes.

    Donc ma foi, tu pourrais faire la même chose qu'avec les lambdas, mais "à l'ancienne."
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif Avatar de Chen norris
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 216
    Points : 248
    Points
    248
    Par défaut
    Salut,

    Pour ton souci, je partirais sur une surcharge avec le même nom, du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    package le.nom.de.ton.paquet;
     
    public class generatedIO overrides x.y.generatedIO {
    }
    Le fait de définir ta propre classe generatedIO dans un package le.nom.de.ton.paquet te permet d'avoir le même nom que la classe que tu surcharges, qui elle, se situe dans un autre package (x.y dans mon exemple). Pour les méthodes, il ne te reste alors plus qu'à les re-définir comme tu le souhaites :

    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
     
    package le.nom.de.ton.paquet;
     
    public class generatedIO overrides x.y.generatedIO {
        public void set1() {
            super.setX1(true);
        }
     
        public void set2() {
            super.setX2(true);
        }
     
        public void reset() {
            super.setX1(false);
            super.setX2(false);
        }
    }
    En espérant que ça réponde bien à ton besoin…

    Et sinon, 2 dernières petites remarques qui, je précise, ne se veulent pas du tout méchantes, mais comme ce sont des erreurs qu'on retrouve souvent… :
    • auxiliaire être/avoir = participe passé → un problème qui pourrait être attaqué
    • « pour » + un verbe = le verbe à l'infinitif → « une classe pour gérer »
    Chen norris
    C/C++, C#, Java, PHP & SQL coder
    Web developer

Discussions similaires

  1. Passage de fonction en paramètre
    Par optalix dans le forum Fortran
    Réponses: 3
    Dernier message: 01/02/2007, 12h31
  2. Passage d'une table en paramètre d'une fonction
    Par Noir-Bizarre dans le forum 4D
    Réponses: 2
    Dernier message: 03/08/2006, 13h56
  3. Réponses: 6
    Dernier message: 24/07/2006, 15h22
  4. Réponses: 7
    Dernier message: 06/05/2006, 15h06
  5. [VB]Passage de Fonction en paramètre (d'une autre fonction)
    Par Australia dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 21/03/2006, 18h55

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