Sobes.tech
Junior — Middle

Абстракт фабрика концепциясын жана анын долбоорлоо үлгүлөрүндөгү максатын түшүндүрө аласызбы?

sobes.tech AI

AIден жооп

Абстракттуу фабрика — бул түзүүчү дизайн үлгүсү, ал интерфейс камсыз кылат байланыштуу же көзкаранды объекттердин үй-бүлөлөрүн түзүү үчүн, алардын так класстарын көрсөтпөстөн.

Модулдун максаты — бирге иштөө керек болгон объекттердин түзүлүшүн камсыз кылуу, алардын так ишке ашыруу деталдарын жашыруу. Бул системанын продуктуларды түзүү, түзүү жана көрсөтүү ыкмасын көзкарандысыз кылышы керек болгондо пайдалуу.

Мисал: iOS тиркемесинде, UI компоненттерин түзүү үчүн абстракттуу фабриканы колдонсо болот, алар iOS жана macOSто ар башка көрүнүштө болушу мүмкүн, бирок бирдей интерфейсти сактайт.

protocol Button {
    func render()
}

class iOSButton: Button {
    func render() {
        print("iOS стилиндеги баскычты чийүү")
    }
}

class MacOSButton: Button {
    func render() {
        print("macOS стилиндеги баскычты чийүү")
    }
}

protocol UIFactory {
    func createButton() -> Button
}

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

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

// Колдонуу
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // iOS стилиндеги баскычты чийүү