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 ոճի կոճակի ռենդեր