Factory method, ou Fabrique en français, est un patron de conception de création qui définit une interface pour créer des objets dans une classe mère, mais délègue le choix des types d’objets à créer aux sous-classes.
Si on a plusieurs sous type selon certains conditions, on va isoler la création de l’objet spécialisé dans une factory
Reprenons nos potions.
Comment isoler la création de multiples potions ?
En création une classe de création, où l’on va autoriser le new et le switch
internal class PotionCreator
{
public IPotion Create(int code) =>
code switch
{
0 => new Potion(),
1 => new MultiplyPotion(new Potion()),
2 => new AntiPoisonPotion(),
_ => throw new NotImplementedException()
};
}
Notons ici le pattern matching
Ce qui donne en utilisation
IPotion position = (new PotionCreator()).Create(1);
Yes, ça attire ta curiosité ?