Sobes.tech
Junior — Middle

Explique el concepto del patrón 'Fábrica abstracta' y cómo se utiliza en el diseño de sistemas de software.

sobes.tech AI

Respuesta de la IA

El patrón "Fábrica Abstracta" es un patrón de diseño creacional que proporciona una interfaz para crear familias de objetos relacionados o dependientes sin especificar sus clases concretas.

La idea es aislar el código cliente de las implementaciones concretas de los objetos creados, permitiendo cambiar las familias de productos sin modificar el código que los utiliza.

Ejemplo de uso en Flutter: Supongamos que tenemos diferentes temas de diseño con un conjunto de widgets (botones, campos de entrada). La fábrica abstracta crea una interfaz para crear estos widgets, y las fábricas concretas las implementan para temas claros y oscuros.

abstract class WidgetFactory {
  Button createButton();
  TextField createTextField();
}

class LightThemeFactory implements WidgetFactory {
  @override
  Button createButton() => LightButton();

  @override
  TextField createTextField() => LightTextField();
}

class DarkThemeFactory implements WidgetFactory {
  @override
  Button createButton() => DarkButton();

  @override
  TextField createTextField() => DarkTextField();
}

// Código del cliente
void buildUI(WidgetFactory factory) {
  var button = factory.createButton();
  var textField = factory.createTextField();
  // Usamos button y textField
}

Este enfoque simplifica el mantenimiento y la extensión del código, permitiendo agregar fácilmente nuevas familias de productos.