Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1871 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Recherche design pattern

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recherche design pattern

n°2306573
leonhard
Posté le 11-10-2017 à 18:15:14  profilanswer
 

Bonjour,
 
en "bricolant" ce matin je me suis posé une question qui j'espère ne sera pas trop bizarre.
Dans mon programme j'ai une classe dont j'aimerais qu'il n'existe qu'une seule instance (ce qui m'a fait penser au singleton). Mais je dois construire cette instance avec des paramètres alors que le singleton n'a pas de paramètres.  En gros ça donne (je donne un pseudo-code ne vous attardez pas à la syntaxe):
 

Code :
  1. public class RayGenerator {
  2.      private int hres, vres;
  3.      private RayGenerator generator = null;
  4.    
  5.      private RayGenerator(int hres, int vres) {
  6.             this.hres=hres;
  7.             this.vres = vres;
  8.       }
  9.       public RayGenerator getInstance (int hres, int vres) {
  10.            if (generator == null)
  11.                 generator = new RayGenerator(hres, vres);
  12.            return generator;
  13.       }
  14.       // d'autres méthodes ici...
  15. }


 
Ce pattern n'est clairement pas un singleton classique (à cause des paramètres) et c'est plutôt crade comme code. Alors je me demandais s'il existait un schéma de conception (en français "design pattern" ) qui permette d'avoir un objet unique et paramétré. Expliqué autrement: comment avoir un objet unique dans une application à plusieurs endroits, sans devoir le passer en paramètre tout partout.
 
D'avance merci de votre aide.

mood
Publicité
Posté le 11-10-2017 à 18:15:14  profilanswer
 

n°2306583
rufo
Pas me confondre avec Lycos!
Posté le 11-10-2017 à 22:23:29  profilanswer
 

Un topic sur ce sujet : https://www.developpez.net/forums/d [...] arametres/
 
En gros, c'est pas une bonne idée de passer des paramètres qui ne seront pris en compte qu'à l'initialisation du singleton. Et ajouter une méthode set() à ton singleton risque d'avoir des effets de bord si le changement de paramètre n'est pas maîtrisé.
 
Lors de l'initialisation du Singleton, tu peux très bien initialiser des attributs via un fichier de conf ou des constantes. Ton cas me fait penser à une connexion à une BD : https://apprendre-php.com/tutoriels [...] t-pdo.html


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2306599
leonhard
Posté le 12-10-2017 à 15:31:53  profilanswer
 

rufo a écrit :

Un topic sur ce sujet : https://www.developpez.net/forums/d [...] arametres/
 
En gros, c'est pas une bonne idée de passer des paramètres qui ne seront pris en compte qu'à l'initialisation du singleton. Et ajouter une méthode set() à ton singleton risque d'avoir des effets de bord si le changement de paramètre n'est pas maîtrisé.
 
Lors de l'initialisation du Singleton, tu peux très bien initialiser des attributs via un fichier de conf ou des constantes. Ton cas me fait penser à une connexion à une BD : https://apprendre-php.com/tutoriels [...] t-pdo.html


 
 
J'aime bien ton sens de la mesure quand tu dis que "ce n'est pas une bonne idée"  :) J'ai pensé à la solution du fichier de configuration, mais ce n'est pas trop ce que j'ai envie de faire. L'analogie avec une connexion BD est très bonne parce que c'est aussi un problème du même genre. On établit une fois une connexion et ensuite on la garde pendant toute l'exécution. Je vais voir si je trouve quelque chose dans ce sens. Merci beaucoup de ton aide.

n°2306602
rufo
Pas me confondre avec Lycos!
Posté le 12-10-2017 à 15:47:56  profilanswer
 

Ben en fait, pour la connexion à la BD, c'est bine un singleton avec des attributs private qui sont initialisés soit via des constantes, soit des valeurs provenant d'un fichier de conf.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Recherche design pattern

 

Sujets relatifs
Responsive web design : possible ?qui achète les magazines web design ?
Recherche + Copie de ligneRecherche personne pour rejoindre un projet
Recherche un codeur LUA pour GTA V RPrecherche d'un mot dans un fichier
recherche librairie pour créer un requeteur pour utilisateur final[Divers] Recherche deux dev pour enquête métier Pôle Emploi
Recherche un player pour timelapse 
Plus de sujets relatifs à : Recherche design pattern


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR