Sobes.tech
Junior — Middle

Kunt u het concept van abstracte fabriek en het doel ervan in ontwerppatronen uitleggen?

sobes.tech AI

Antwoord van AI

De abstracte fabriek is een creational designpatroon dat een interface biedt voor het maken van families van gerelateerde of afhankelijke objecten zonder hun concrete klassen aan te geven.

Het doel van het patroon is het garanderen van de creatie van objecten die samen moeten werken, waarbij de details van hun concrete implementatie worden verborgen. Dit is handig wanneer het systeem onafhankelijk moet zijn van de manier waarop producten worden gemaakt, samengesteld en gepresenteerd.

Voorbeeld: in een iOS-app kan een abstracte fabriek worden gebruikt om UI-componenten te maken die er verschillend uitzien op iOS en macOS, maar dezelfde interface hebben.

protocol Button {
    func render()
}

class iOSButton: Button {
    func render() {
        print("Render iOS-stijl knop")
    }
}

class MacOSButton: Button {
    func render() {
        print("Render macOS-stijl knop")
    }
}

protocol UIFactory {
    func createButton() -> Button
}

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

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

// Gebruik
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // Render iOS-stijl knop