Sobes.tech
Junior — Middle

Jaka jest rola i zastosowanie wzorców metod fabrycznych w programowaniu?

sobes.tech AI

Odpowiedź od AI

Wzorzec metody fabrycznej (Factory Method) służy do tworzenia obiektów bez wskazywania konkretnej klasy tworzonego obiektu. Określa interfejs do tworzenia obiektu, ale pozwala podklasom decydować, którą klasę zainstancjonować.

W Flutterze (i w programowaniu ogólnie) metody fabryczne stosuje się do:

  • Inkapsulacji logiki tworzenia obiektów, szczególnie jeśli tworzenie jest skomplikowane lub zależy od warunków.
  • Umożliwienia zmiany konkretnej klasy tworzonego obiektu bez zmiany kodu, który go używa.
  • Ułatwienia testowania i rozszerzalności kodu.

Przykład w Dart/Flutter:

abstract class Button {
  void render();
}

class AndroidButton implements Button {
  @override
  void render() => print('Renderowanie przycisku Android');
}

class IOSButton implements Button {
  @override
  void render() => print('Renderowanie przycisku iOS');
}

class Dialog {
  Button createButton(String platform) {
    if (platform == 'Android') {
      return AndroidButton();
    } else if (platform == 'iOS') {
      return IOSButton();
    } else {
      throw Exception('Nieznana platforma');
    }
  }

  void render() {
    Button button = createButton('Android');
    button.render();
  }
}

Tutaj metoda createButton jest fabryczną metodą, która tworzy różne obiekty w zależności od platformy.