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