Sobes.tech
Junior — Middle

Pouvez-vous donner un exemple de mise en œuvre du patron de méthode de fabrique dans le code?

sobes.tech IA

Réponse de l'IA

Le patron de méthode de fabrique permet de créer des objets sans spécifier la classe concrète de l'objet à créer. En Flutter, cela est pratique pour créer des widgets avec différentes logiques.

Exemple d'implémentation en Dart :

abstract class Button {
  void render();
}

class AndroidButton implements Button {
  @override
  void render() {
    print('Rendu du bouton style Android');
  }
}

class IOSButton implements Button {
  @override
  void render() {
    print('Rendu du bouton style iOS');
  }
}

abstract class Dialog {
  Button createButton();

  void render() {
    Button button = createButton();
    button.render();
  }
}

class AndroidDialog extends Dialog {
  @override
  Button createButton() => AndroidButton();
}

class IOSDialog extends Dialog {
  @override
  Button createButton() => IOSButton();
}

void main() {
  Dialog dialog;

  // En fonction de la plateforme, créer le dialogue nécessaire
  bool isAndroid = true;
  if (isAndroid) {
    dialog = AndroidDialog();
  } else {
    dialog = IOSDialog();
  }

  dialog.render();
}

Dans cet exemple, la méthode de fabrique createButton permet aux sous-classes de créer des objets de différents types de boutons, et le code client travaille avec des abstractions.