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 სტილის ღილაკის გამოსახვა