Dans ce tutoriel, nous appendrons pourquoi utiliser le design pattern Poids-Mouche.
Nous le définirons puis l’analyserons au travers d’un exemple pratique.
Pré-requis : Avoir les bases en programmation orientée objet => Tutoriel OpenClassroom
Définition :
Poids-mouche : Patron de conception qui permet de réduire le nombre d’objet à instancier si tous ces objets sont semblables et se différencient sur quelques paramètres
Exemple pratique :
On souhaite afficher un champignon à l’écran, pixel par pixel. Chaque pixel possède une couleur.
Deux choix s’offre à nous : Créer autant d’instance que de pixels ou créer seulement les pixels qui diffèrent ( blanc, rouge, noir ) et les réutiliser.
Installation de dépendance
Dans ce tutoriel, nous utiliserons pygame pour afficher le champignon à l’écran et pympler pour obtenir la taille en mémoire utilisée pour stocker l’ensemble des objets Pixel.
Ouvrez une terminal et tapez les commandes suivantes
sudo apt-get install python-pygame pip install pympler
Création d’autant d’instances que de pixels
Le code source affiché nous permet de créer une instance pour chaque pixel affiché.
Voir le code de test sans Poids-mouche.
Une fois le script exécuté dans un terminal, on obtient le résultat suivant.
# Résultats 44296 # Taille en octet de la liste de pixels 0:00:01.019054 # Temps d'execution du script
Création des instances qui diffèrent et réutilisation
Le code suivant crée seulement les instances de Pixel qui diffèrent. Une fois créés, elles peuvent être réutilisées.
Voir le code de test avec Poids-mouche.
Exécuter ce script dans un terminal, un résultat similaire sera obtenu.
# Résultats 1792 # Taille en octet de la liste de pixels 0:00:01.011397 # Temps d'execution du script 3 # Nombre d'instances différentes enregistrées
On s’aperçoit que le temps d’exécution et la mémoire utilisée sont réduits par rapport au 1er script.
Conclusion
Ainsi s’achève ce tutoriel, pour toutes questions eventuelles, ajoutez-les en commentaires.