Sobes.tech
Junior — Middle

Meg tudná magyarázni az absztrakt gyár fogalmát és célját a tervezési mintákban?

sobes.tech MI

Válasz az MI-től

Az absztrakt gyár egy létrehozó tervezési minta, amely egy interfészt biztosít a kapcsolódó vagy függő objektumcsaládok létrehozásához anélkül, hogy meghatározná azok konkrét osztályait.

A minta célja, hogy biztosítsa az olyan objektumok létrehozását, amelyeknek együtt kell működniük, miközben elrejti azok konkrét implementációjának részleteit. Ez akkor hasznos, ha a rendszernek függetlennek kell lennie a termékek létrehozásának, összetételének és bemutatásának módjától.

Példa: egy iOS alkalmazásban használhatunk egy absztrakt gyárat UI-komponensek létrehozására, amelyek különböznek iOS és macOS környezetben, de ugyanazt az interfészt használják.

protocol Button {
    func render()
}

class iOSButton: Button {
    func render() {
        print("iOS stílusú gomb renderelése")
    }
}

class MacOSButton: Button {
    func render() {
        print("macOS stílusú gomb renderelése")
    }
}

protocol UIFactory {
    func createButton() -> Button
}

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

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

// Használat
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // iOS stílusú gomb renderelése