Sobes.tech
Junior — Middle

Můžete vysvětlit koncept abstraktní továrny a její účel v návrhových vzorech?

sobes.tech AI

Odpověď od AI

Abstraktní továrna je návrhový vzor, který poskytuje rozhraní pro vytváření rodin souvisejících nebo závislých objektů bez specifikace jejich konkrétních tříd.

Účelem vzoru je zajistit tvorbu objektů, které mají spolupracovat, přičemž skrývá detaily jejich konkrétní implementace. To je užitečné, když má systém být nezávislý na způsobu tvorby, složení a prezentace produktů.

Příklad: v iOS aplikaci lze použít abstraktní továrnu k vytváření UI komponent, které vypadají odlišně na iOS a macOS, ale mají stejný rozhraní.

protocol Button {
    func render()
}

class iOSButton: Button {
    func render() {
        print("Renderování tlačítka ve stylu iOS")
    }
}

class MacOSButton: Button {
    func render() {
        print("Renderování tlačítka ve stylu macOS")
    }
}

protocol UIFactory {
    func createButton() -> Button
}

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

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

// Použití
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // Renderování tlačítka ve stylu iOS