Bonjours à tous!
Étant autodidacte, je n'ai pas de très bonnes méthodes question code, design pattern etc...
Jusqu'à présent cela ne m'avais jamais posé trop de soucis. mais il y a un début à tout!
Voici le topo:
J'ai une appli avec plusieurs objets qui font régulièrement appel à un autre objet ("Database" qui exécute des requêtes SQL demandé par les autres objets).
Chaque objet à ça dans son init:
Déjà, je ne suis pas sur que cette méthode soit très propre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part self.db = Database()
Mais ce n'est pas le sujet de ma question.
Le init de Database (appelé à chaque objet donc) récupère des options via ConfigParser (avec forcément un open sur le fichier de config à chaque création de Database...):
Quelle est la meilleure méthode pour gérer ce genre de choses?
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 class Database() : def __init__( self ): # Reading config file config = ConfigParser.ConfigParser() config.read("toto.cfg") hostName = config.get('DataBase', 'HostName') userName = config.get('DataBase', 'UserName') userPassword = config.get('DataBase', 'UserPassword') verbose = config.get('DataBase', 'Verbose') # True/False self.db = None ##################### # bd connection infos ##################### self.dbHostName = hostName self.dbUserName = userName self.dbUserPassword = userPassword self.verbose = bool(verbose)
Rendre les options global? Comment s'y prendre pour faire ça de manière propre?
Rendre Database global? L'objet n'est crée qu'une seul fois et tous appellent le même? Encore une fois, Comment s'y prendre pour faire ça proprement?
Je connais un peu l'OO (j'ai fait un peu de C++). J'ai pensé au pattern singleton mais je doute un peu.
Ce genre de question me semble être la base et n'importe quel conseil et/ou brouillon de code pour m'aiguiller un peu serait le bienvenu.
Comment géreriez vous ce genre de cas?
Un grand merci d'avance pour votre coup de mains.![]()
Partager