Junior — Middle
Kas saaksite selgitada abstraktse tehase kontseptsiooni ja selle eesmärki disainimustrites?
sobes.tech AI
Vastus AI-lt
Abstraktne tehas on loomise muster, mis pakub liidest seotud või sõltuvate objektide perekondade loomise jaoks ilma nende konkreetsete klasside määratlemata.
Mustri eesmärk on tagada objektide loomine, mis peavad töötama koos, varjates nende konkreetse teostamise üksikasju. See on kasulik siis, kui süsteem peab olema sõltumatu toodete loomise, koostamise ja esitamise viisist.
Näide: iOS rakenduses saab kasutada abstraktset tehast UI komponentide loomiseks, mis näevad iOS ja macOS-il erinevad välja, kuid omavad sama liidest.
protocol Button {
func render()
}
class iOSButton: Button {
func render() {
print("iOS stiilis nupu render")
}
}
class MacOSButton: Button {
func render() {
print("macOS stiilis nupu render")
}
}
protocol UIFactory {
func createButton() -> Button
}
class iOSFactory: UIFactory {
func createButton() -> Button {
return iOSButton()
}
}
class MacOSFactory: UIFactory {
func createButton() -> Button {
return MacOSButton()
}
}
// Kasutamine
let factory: UIFactory = iOSFactory()
let button = factory.createButton()
button.render() // iOS stiilis nupu render