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

Langages de programmation Discussion :

[POO] Gestion de la configuration


Sujet :

Langages de programmation

Vue hybride

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

    Informations forums :
    Inscription : Août 2012
    Messages : 1
    Par défaut [POO] Gestion de la configuration
    Bonjour

    Je suis débutant en POO .

    Je me pose des questions au niveau de la conception (peut être trop), Dans mon application développée en C++ certains de mes objets utilisent des configurations enregistrées dans des fichiers XML ou INI.

    J’ai eu plusieurs idées de codage, pour le moment, j’en ai retenu 2 et j’aimerai votre avis sur celles-ci. Je suis peut être complétement dans l’erreur.

    La première serait d’avoir une Configuration membre d’Objet.
    Comme cela, je n’ai aucun paramètre à passer au constructeur d’Objet mais du coup je ne suis pas sure que mon code soit très réutilisable et testable.

    Configuration 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class Configuration
    {
    public:
        Configuration();
    
        int getA();
        int getB();
        int getC();
    
    private:
        String m_fileName;
    };

    Objet 1:
    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
    class Objet
    {
    public:
    
        Objet ();
    
        /*
        ...
        */
    
    private:
        Configuration m_configuration;
    
        /*
        ...
        */
    };

    Service 1:
    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
    class Service
    {
    public:
    
        Service();
    
        /*
        ...
        */
    
    private:
    
        Objet m_ objet;
    
        /*
        ...
        */
    };
    La seconde façon est quasiment la même que la première, sauf que cette fois Configuration et Objet sont tous les deux membres de la classe Service, je trouve que le code est plus testable mais légèrement moins simple à utiliser.

    Configuration 2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Configuration
    {
    public:
    
        int getA();
        int getB();
        int getC();
    
    private:
        String m_fileName;
    };

    Objet 2:
    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
    class Object
    {
    public:
    
        Object(int  a, int B, int c);
        /*
        ...
        */
    
    private:
    
        int m_a
        int m_b;
        int m_c;
    
    };

    Service 2:
    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
    class Service
    {
    public:
    
        /*
        ...
        */
    
    private:
    
        Objet  *  m_objet;
        Configuration m_configuration;
        /*
        ...
        */
    
    };
    Et pour la classe configuration, j’ai également plusieurs idées :
    Soit je lis directement dans mon fichier à chaque fois que j’ai besoin d-une valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    class Configuration
    {
    public:
        Configuration();
    
        int getA();
        int getB();
        int getC();
    
    private:
    
        String m_fileName;
    };

    Soit je charge les valeurs contenues dans mon fichier à la création.


    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
    class Configuration
    {
    public:
    
        Configuration();
    
        bool load();
    
        int getA();
        int getB();
        int getC();
    
    private:
    
        String m_fileName;
    
        int m_a
        int m_b;
        int m_c;
    
    };
    Merci d’avance.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5
    Par défaut Pattern
    salut

    Le plus simple a mon sens est utiliser le concept de factory

    tu crée une class de lecture de tes fichiers de conf en static


    pour un .ini

    cle = valeur

    ensuite tu appel ton lecteur en static

    Monlecteur::lire(cle)

    il va lire ta cle et te renvoi ta valeur

    tu le faire aussi avec un liste

    comme ca

    Monlecteur::lire(list de cle)

    il te renvoi un liste associative cle:valeur

    1 cle1 = valeur1
    2 cle2 = valeur2

    tu peux ainsi appeler tes cle ta class par leur id

    Je ne code pas en c++ mais le principe est le meme pour tous les langage de programmation de plus je pense que tu peux trouver des lecteur de fichier xml ou ini tous fait

    ++ nico

Discussions similaires

  1. [POO] Gestions des événements en javascript
    Par magalieParis13 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/11/2008, 17h47
  2. [POO] Gestion des Singleton
    Par Bisûnûrs dans le forum Langage
    Réponses: 5
    Dernier message: 05/09/2008, 21h49
  3. [POO] Gestion de classes
    Par dahu29 dans le forum Langage
    Réponses: 4
    Dernier message: 07/08/2008, 22h18
  4. [POO] Gestion des exception avec php4
    Par mulot49 dans le forum Langage
    Réponses: 1
    Dernier message: 26/04/2007, 10h18
  5. [POO] Gestion d'un tableau en attribut
    Par Shandler dans le forum Langage
    Réponses: 4
    Dernier message: 18/01/2007, 21h48

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