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...

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...):

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)
Quelle est la meilleure méthode pour gérer ce genre de choses?

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.