Sobes.tech
Junior — Middle

¿Puedes dar un ejemplo de implementación del patrón de método de fábrica en el código?

sobes.tech AI

Respuesta de la IA

El patrón de método de fábrica permite crear objetos sin especificar la clase concreta del objeto que se va a crear. En Flutter, esto es útil para crear widgets con diferentes lógicas.

Ejemplo de implementación en Dart:

abstract class Button {
  void render();
}

class AndroidButton implements Button {
  @override
  void render() {
    print('Renderizar botón estilo Android');
  }
}

class IOSButton implements Button {
  @override
  void render() {
    print('Renderizar botón estilo 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;

  // Dependiendo de la plataforma, creamos el diálogo necesario
  bool isAndroid = true;
  if (isAndroid) {
    dialog = AndroidDialog();
  } else {
    dialog = IOSDialog();
  }

  dialog.render();
}

En este ejemplo, el método de fábrica createButton permite a las subclases crear objetos de diferentes tipos de botones, y el código cliente trabaja con abstracciones.