Sobes.tech
Junior — Middle

Czy może Pan wyjaśnić koncepcję fabryki abstrakcyjnej i jej cel w wzorcach projektowych?

sobes.tech AI

Odpowiedź od AI

Abstrakcyjna fabryka to kreacyjny wzorzec projektowy, który zapewnia interfejs do tworzenia rodzin powiązanych lub zależnych obiektów bez określania ich konkretnych klas.

Zadaniem wzorca jest zapewnienie tworzenia obiektów, które muszą współpracować, ukrywając szczegóły ich implementacji. Jest to przydatne, gdy system musi być niezależny od sposobu tworzenia, kompozycji i prezentacji produktów.

Przykład: w aplikacji iOS można użyć abstrakcyjnej fabryki do tworzenia komponentów UI, które wyglądają inaczej na iOS i macOS, ale mają ten sam interfejs.

protocol Button {
    func render()
}

class iOSButton: Button {
    func render() {
        print("Renderowanie przycisku w stylu iOS")
    }
}

class MacOSButton: Button {
    func render() {
        print("Renderowanie przycisku w stylu macOS")
    }
}

protocol UIFactory {
    func createButton() -> Button
}

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

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

// Użycie
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // Renderowanie przycisku w stylu iOS