Sobes.tech
Junior — Middle

გთხოვთ ახსნათ 'აბსტრაქტული ფაბრიკა' ნიმუშის კონცეფცია და როგორ გამოიყენება იგი პროგრამული სისტემების დიზაინში.

sobes.tech AI

პასუხი AI-სგან

"აბსტრაქტული ქარხანა" (Abstract Factory) არის შექმნის დიზაინის ნიმუში, რომელიც უზრუნველყოფს ინტერფეისს დაკავშირებული ან დამოკიდებული ობიექტების ოჯახების შექმნისთვის, მათი კონკრეტული კლასების მითითების გარეშე.

მიზანია, იზოლირება მოახდინოს მომხმარებლის კოდის და კონკრეტული ობიექტების რეალიზაციებისგან, რაც საშუალებას აძლევს პროდუქტის ოჯახების შეცვლას, არ შეცვალოს კოდი, რომელიც მათ იყენებს.

Flutter-ში გამოყენების მაგალითი: გავუშვათ, რომ გვაქვს სხვადასხვა დიზაინის თემები, რომლებიც შეიცავს ვიჯეტების ნაკრებს (ღილაკები, ტექსტის ველები). აბსტრაქტული ქარხანა ქმნის ინტერფეისს ამ ვიჯეტების შექმნისთვის, ხოლო კონკრეტული ქარხანები რეალიზაციას უწევენ მათ ნათელ და მუქ თემებზე.

abstract class WidgetFactory {
  Button createButton();
  TextField createTextField();
}

class LightThemeFactory implements WidgetFactory {
  @override
  Button createButton() => LightButton();

  @override
  TextField createTextField() => LightTextField();
}

class DarkThemeFactory implements WidgetFactory {
  @override
  Button createButton() => DarkButton();

  @override
  TextField createTextField() => DarkTextField();
}

// მომხმარებლის კოდი
void buildUI(WidgetFactory factory) {
  var button = factory.createButton();
  var textField = factory.createTextField();
  // გამოყენება button და textField
}

ეს მიდგომა ამარტივებს კოდის შენარჩუნებას და გაფართოებას, ადვილად დამატებით ახალი პროდუქტის ოჯახები.