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é ?