Sobes.tech
Junior — Middle

Può spiegare il concetto di fabbrica astratta e il suo scopo nei pattern di progettazione?

sobes.tech AI

Risposta dell'AI

La fabbrica astratta è un pattern creazionale che fornisce un'interfaccia per creare famiglie di oggetti correlati o dipendenti senza specificare le loro classi concrete.

Lo scopo del pattern è garantire la creazione di oggetti che devono lavorare insieme, nascondendo i dettagli della loro implementazione concreta. È utile quando il sistema deve essere indipendente dal modo in cui vengono creati, composti e rappresentati i prodotti.

Esempio: in un'app iOS, si può usare una fabbrica astratta per creare componenti UI che appaiono diversi su iOS e macOS, ma hanno la stessa interfaccia.

protocol Button {
    func render()
}

class iOSButton: Button {
    func render() {
        print("Renderizza pulsante stile iOS")
    }
}

class MacOSButton: Button {
    func render() {
        print("Renderizza pulsante stile 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() // Renderizza pulsante stile iOS