Sobes.tech
Junior — Middle

¿Puede explicar el concepto de fábrica abstracta y su propósito en los patrones de diseño?

sobes.tech AI

Respuesta de la IA

La 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.

El propósito del patrón es garantizar la creación de objetos que deben trabajar juntos, ocultando los detalles de su implementación concreta. Esto es útil cuando el sistema debe ser independiente del modo en que se crean, componen y representan los productos.

Ejemplo: en una aplicación de iOS, se puede usar una fábrica abstracta para crear componentes de interfaz de usuario que se ven diferentes en iOS y macOS, pero que tienen la misma interfaz.

protocol Button {
    func render()
}

class iOSButton: Button {
    func render() {
        print("Renderizar botón estilo iOS")
    }
}

class MacOSButton: Button {
    func render() {
        print("Renderizar botón estilo macOS")
    }
}

protocol UIFactory {
    func createButton() -> Button
}

class iOSFactory: UIFactory {
    func createButton() -> Button {
        return iOSButton()
    }
}

class MacOSFactory: UIFactory {
    func createButton() -> Button {
        return MacOSButton()
    }
}

// Uso
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // Renderizar botón estilo iOS