Junior
მოყევით აბსტრაქტული ფაბრიკის გამოყენების მაგალითი
sobes.tech AI
პასუხი AI-სგან
აბსტრაქტული ფაბრიკა — ეს არის შექმნის დიზაინის ნიმუში, რომელიც უზრუნველყოფს ინტერფეისს დაკავშირებული ობიექტების ოჯახების შექმნისთვის, მათი კონკრეტული კლასების მითითების გარეშე:
C#-ის მაგალითი:
// პროდუქტის ინტერფეისები
public interface IButton {
void Render();
}
public interface ICheckbox {
void Render();
}
// Windows-ის კონკრეტული პროდუქტები
public class WindowsButton : IButton {
public void Render() => Console.WriteLine("Windows ღილაკის გამოსახულების ჩვენება");
}
public class WindowsCheckbox : ICheckbox {
public void Render() => Console.WriteLine("Windows მონიშნვის ყუთის გამოსახულების ჩვენება");
}
// MacOS-ის კონკრეტული პროდუქტები
public class MacButton : IButton {
public void Render() => Console.WriteLine("MacOS ღილაკის გამოსახულების ჩვენება");
}
public class MacCheckbox : ICheckbox {
public void Render() => Console.WriteLine("MacOS მონიშნვის ყუთის გამოსახულების ჩვენება");
}
// აბსტრაქტული ფაბრიკა
public interface IGUIFactory {
IButton CreateButton();
ICheckbox CreateCheckbox();
}
// კონკრეტული ფაბრიკები
public class WindowsFactory : IGUIFactory {
public IButton CreateButton() => new WindowsButton();
public ICheckbox CreateCheckbox() => new WindowsCheckbox();
}
public class MacFactory : IGUIFactory {
public IButton CreateButton() => new MacButton();
public ICheckbox CreateCheckbox() => new MacCheckbox();
}
// გამოყენება
class Application {
private IButton button;
private ICheckbox checkbox;
public Application(IGUIFactory factory) {
button = factory.CreateButton();
checkbox = factory.CreateCheckbox();
}
public void Render() {
button.Render();
checkbox.Render();
}
}
// მომხმარებლის კოდი არჩევს საჭირო ფაბრიკას
IGUIFactory factory = new WindowsFactory();
Application app = new Application(factory);
app.Render();
ამ მაგალითში აბსტრაქტული ფაბრიკა საშუალებას აძლევს შექმნას დაკავშირებული ობიექტების ოჯახები (ღილაკები და მონიშნვის ყუთები) სხვადასხვა პლატფორმებისთვის, კონკრეტული პროდუქტის კლასების ცოდნის გარეშე।