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

Design Patterns Discussion :

Comment passer des paramètres lors de sa construction ? [Singleton]


Sujet :

Design Patterns

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut Comment passer des paramètres lors de sa construction ?
    Bonjour,

    Je cherche à créer une classe singleton qui nécessite des paramètres pour sa construction.

    Bien sûr je peux créer une méthode get_instance avec des paramètres et ensuite les transmettre au constructeur, mais une fois le singleton créé ces paramètres deviennent inutiles.

    Je pense simplifier les appels ultérieur à la méthode get_instance avec des valeurs par défaut.

    Le problème c'est que même si l'utilisateur modifie ces paramètres lors d'un second appel, le singleton étant créé, il n'est pas possible de les prendre en compte.

    De ce que j'ai vu, le paramètre d'un singleton est plus utiliser pour modifier le comportement de la méthode get_instance (par exemple pour retourner un élément donné d'une liste).

    Une idée ?

  2. #2
    Membre Expert
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    Juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 489
    Par défaut
    Je ne comprends pas trop ce que tu cherches à faire exactement ? Modifier l'instance du singleton selon un/plusieurs paramètres d'appels lors du get_instance ?

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par Anthony.Desvernois Voir le message
    Je ne comprends pas trop ce que tu cherches à faire exactement ? Modifier l'instance du singleton selon un/plusieurs paramètres d'appels lors du get_instance ?
    Je voulais éviter les aspects technique mais je pense qu'avec un exemple concret ça sera plus simple

    Je créé un widget pour encapsider une fenêtre SDL (bibliothèque pour créer des jeux vidéo). On ne peux créer qu'une fenêtre, donc j'utilise naturellement un singleton.

    Pour créer la fenêtre, il faut préciser sa taille, le nombre de bit par pixel, ... Seulement une fois la fenêtre crée il n'est plus possible de les modifier (ça viens pas de moi, c'est une limitation de la SDL).

    Donc pour un premier appel, il faut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    get_instance (680, 480, 32);
    Et ensuite, uniquement :
    C'est plus clair ?

  4. #4
    Membre Expert
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ingénieur sécurité & risque
    Inscrit en
    Juin 2007
    Messages
    1 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur sécurité & risque
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 489
    Par défaut
    Ok ... Techniquement, je pense que tu pourrais créer des champs qui te permettent de verifier la taille de ton instance, et si les paramètres d'appels sont différents, appeler la méthode de SDL permettant de resizer la fenêtre (si existante) ou alors delete et recrée la fenêtre au bonne dimension. En gros un test quoi

  5. #5
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par Anthony.Desvernois Voir le message
    appeler la méthode de SDL permettant de resizer la fenêtre (si existante)
    Ah si en fait c'est possible (je chercher pas au bon endroit), je vais donc utiliser une méthode avec des paramètres par défauts et mettre à jour l'affichage en cas de besoin.


  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Un truc comme ça, ça suffit pas ?

    Code java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    class MaClasse {
      protected MaClasse(Parametre a) {
      }
     
      static private MaClasse instance = null;
      static public getInstance() {
        if(instance==null) throw new IllegalArgumentException("");
        return instance;
      }
      static public getInstance(Parametre a) {
       instance=null;
       instance = new MaClasse(a);
       return getInstance();
      }

    A changer suivant le comportement que tu veux avoir avec getInstance(Parametre)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment passer des paramètres VB6 à Crystal Report
    Par callo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 12/10/2006, 13h27
  2. [WebForms]Comment passer des paramètres à un UserControl ?
    Par cmoiscrat dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 03/08/2006, 15h03
  3. Réponses: 5
    Dernier message: 31/07/2006, 10h17
  4. Comment passer des paramètre a OpenRecordset
    Par molarisapa dans le forum Access
    Réponses: 2
    Dernier message: 09/03/2006, 17h14
  5. Réponses: 7
    Dernier message: 30/12/2004, 12h01

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