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

 C++ Discussion :

Rangement de mes fonctions dans ma classe


Sujet :

C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 79
    Par défaut Rangement de mes fonctions dans ma classe
    Bonjour,

    J'ai fait une classe qui contient des méthodes statiques, qui servent de services à d'autres classes.

    Mon problème est que pour chacune de ces méthodes, j'ai fait des fonctions intermédiaires et des structs, qui ne servent jamais qu'à une seule fonction. Les grosses fonctions intermédiaires ont même des petites fonctions intermédiaires rien que pour elles!!!
    Ca donne donc une déclaration de classe un peu bazare:
    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
     
    class ma_classe_de_service {
    public:
        static A ();
        static B ();
        static C ();
     
    private
    // fonctions appelées par A
        static AA ();
        static AB ();
        static AC ();
    // structure utilisée dans A
        struct A_A{
        }
    // fonctions appelées par AA
        static AAA ();
        static AAB ();
    // fonctions appelées par B
        static BA ();
        static BB ();
        static BC ();    
    };
    où Ai est une fonction appelée par A, AAi est une fonction appelée par AA, et ainsi de suite.

    Est ce qu'il n'y aurait pas un moyen pour ranger à plus proprement?

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Une solution est de séparer les rôles : ta classe de service d'un côté et ses détails d'implémentation de l'autre :
    ton_service.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class ma_classe_de_service {
    public:
        static A ();
        static B ();
        static C ();
    };
    Ensuite tu définis des classes pour tes implémentations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    struct A_Impl
    {
    // fonctions appelées par A
        void AA ();
        void AB ();
        void AC ();
    // structure utilisée dans A
        struct A_A{
        }
    // eventuellement un contexte :
    };
    Et tu l'utilises dans l'implémentation ton_service.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    void ma_classe_de_service::A ()
    {
       A_Impl impl(/*param si besoin*/);
       impl.AA();
       impl.AB();
       impl.AC();
    }
    Ce découpage te permettra en outre de faire évoluer ton implémentation plus facilement : si seul A_Impl change, pas besoin de tout recompiler. Ou encore de faire de A_Impl une classe abstraite dont la classe concrète est instancié selon des paramètres spécifiques. Ou templatiser ma_classe_de_service::A pour lui fournir la class A_Impl à utiliser. Toutes ces techniques accroissent la souplesse et l'évolutivité de ton service.

Discussions similaires

  1. appel à une fonction dans la classe Action
    Par imane_bennouna dans le forum Struts 1
    Réponses: 3
    Dernier message: 07/08/2006, 11h09
  2. [POO] Fonctions dans une classe abstraite
    Par Seth77 dans le forum Langage
    Réponses: 4
    Dernier message: 27/06/2006, 13h21
  3. Appel de fonction dans une classe
    Par saint-pere dans le forum Langage
    Réponses: 3
    Dernier message: 08/05/2006, 22h13
  4. Mettre mes fonctions dans un meme script
    Par sparrow dans le forum Langage
    Réponses: 4
    Dernier message: 25/03/2006, 01h26
  5. Appel de fonction dans une classe
    Par Seth77 dans le forum Langage
    Réponses: 8
    Dernier message: 16/01/2006, 10h32

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