Sobes.tech
Junior — Middle

Puteți explica conceptul de fabrică abstractă și scopul său în modelele de proiectare?

sobes.tech AI

Răspuns de la AI

Fabrica abstractă este un pattern de proiectare creational care oferă o interfață pentru crearea familiilor de obiecte relaționate sau dependente fără a specifica clasele lor concrete.

Scopul pattern-ului este de a asigura crearea de obiecte care trebuie să funcționeze împreună, ascunzând detaliile implementării lor concrete. Acest lucru este util atunci când sistemul trebuie să fie independent de modul în care sunt create, compuse și prezentate produsele.

Exemplu: într-o aplicație iOS, se poate folosi o fabrică abstractă pentru a crea componente UI care arată diferit pe iOS și macOS, dar au aceeași interfață.

protocol Button {
    func render()
}

class iOSButton: Button {
    func render() {
        print("Renderizare buton stil iOS")
    }
}

class MacOSButton: Button {
    func render() {
        print("Renderizare buton stil macOS")
    }
}

protocol UIFactory {
    func createButton() -> Button
}

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

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

// Utilizare
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // Renderizare buton stil iOS