Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot abstraktās rūpnīcas koncepciju un tās mērķi dizaina modeļos?

sobes.tech AI

Atbilde no AI

Abstraktā rūpnīca ir radīšanas dizaina paraugs, kas nodrošina saskarni saistītu vai atkarīgu objektu ģimenes izveidei, neizpaužot to konkrētās klases.

Šī modeļa mērķis ir nodrošināt objektu izveidi, kas ir jāstrādā kopā, slēpjot to konkrētās realizācijas detaļas. Tas ir noderīgi, kad sistēma ir jābūt neatkarīgai no produktu izveides, sastādīšanas un attēlošanas veida.

Piemērs: iOS lietotnē var izmantot abstraktu rūpnīcu, lai izveidotu UI komponentus, kas izskatās dažādi iOS un macOS, bet tiem ir tāda pati saskarne.

protocol Button {
    func render()
}

class iOSButton: Button {
    func render() {
        print("iOS stila poga")
    }
}

class MacOSButton: Button {
    func render() {
        print("macOS stila poga")
    }
}

protocol UIFactory {
    func createButton() -> Button
}

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

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

// Lietošana
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // iOS stila poga