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