Sobes.tech
Junior — Middle

Môžete vysvetliť koncept abstraktnej továrne a jej účel v návrhových vzorcoch?

sobes.tech AI

Odpoveď od AI

Abstraktná továreň je tvorivý návrhový vzor, ktorý poskytuje rozhranie na vytváranie rodín súvisiacich alebo závislých objektov bez špecifikácie ich konkrétnych tried.

Cieľom vzoru je zabezpečiť tvorbu objektov, ktoré majú spolupracovať, pričom skrýva detaily ich konkrétnej implementácie. Je to užitočné, keď má systém byť nezávislý od spôsobu tvorby, zloženia a prezentácie produktov.

Príklad: v iOS aplikácii možno použiť abstraktnú továreň na vytváranie UI komponentov, ktoré vyzerajú odlišne na iOS a macOS, ale majú rovnaké rozhranie.

protocol Button {
    func render()
}

class iOSButton: Button {
    func render() {
        print("Renderovanie tlačidla v štýle iOS")
    }
}

class MacOSButton: Button {
    func render() {
        print("Renderovanie tlačidla v štýle macOS")
    }
}

protocol UIFactory {
    func createButton() -> Button
}

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

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

// Použitie
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // Renderovanie tlačidla v štýle iOS