Il était une fois des :
Indispensable pour
Les langages informatiques modernes orientés objet permettent la réutilisation
La patisserie Sugarcube Corner veut diversifier son offre de petit gateau à emporter. Voilà ce qu'elle souhaite proposer :
Comment faire cela ?
On créer une classe pour chaque combinaison
Définition de l'enfer sur Terre
Super classe avec toutes les variables
Une classe doit être ouverte à l'extension mais fermé à la modification
Pour ajouter une fonctionnalité on doit seulement ajouter du nouveau code mais pas en modifier de l'ancien
Impossible à faire dans 100% des cas il faut arbitrer 🙃
Vous êtes en train de monter votre système de vente en ligne de pizza. Lorsque l'utilisateur clique sur une pizza vous allez générer un objet pizza dans votre SI.
Implémentez une classe PizzaStore qui permet de créer des pizzas selon un paramètre passé. Vous utiliserez le fichier Pizza base code disponible sur Moodle
Externalise la création des pizzas dans une autre classe
Mettez à jour votre code pour implémentez ce pattern
On essaye au maximum de cacher l'utilisation de new
Comment créer plusieurs pizzerias, chacun avec ses spécificités ?
Choisissez une solution et mettez la en place
Comment créer une classe avec une seule instance ?
Implémentez un singleton, et tester que vous ne pouvez pas créer plusieurs instances
2 objets java
Créez de manière simultané plusieurs singletons voir ce qu'il se passe
Gestion de ressources coûteuses ou que l'on ne veut pas dupliquer inutilement
Dans la vraie vous allez rarement faire un singleton vous même, mais utiliser des frameworks pour.
Mais savoir comment cela fonctionne est toujours intéressant intellectuellement.