Sobes.tech
Junior — Middle

Программалоодо фабрика ыкмаларынын үлгүлөрүнүн ролу жана колдонулушу кандай?

sobes.tech AI

AIден жооп

Fabrika usulynyň (Factory Method) şablony, döredilýän obýektleriň takyk klassyny görkezmezden, obýektleri döretmek üçin ulanylýar. Ol obýekti döretmek üçin interfeýs kesgitleýär, ýöne subklasslara haýsy klassyň instansiýa edilmelidigini karar bermäge mümkinçilik berýär.

Flutterda (we umumy programmirlemede) fabrika usullary şu maksatlar üçin ulanylýar:

  • Obýektleri döretmek logikasyny kapsüllemek, aýratyn-da, döretmek kyn bolsa ýa-da şertlere bagly bolsa.
  • Döredilen obýektiň takyk klassyny üýtgetmäge mümkinçilik bermek, kody üýtgetmezden.
  • Kody synag etmek we giňeldilmegini aňsatlaşdyrmak.

Dart/Flutter mysaly:

abstract class Button {
  void render();
}

class AndroidButton implements Button {
  @override
  void render() => print('Android düwmesini görkezmek');
}

class IOSButton implements Button {
  @override
  void render() => print('iOS düwmesini görkezmek');
}

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

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

Bu ýerde createButton metody fabrik usul bolup, platforma baglylykda dürli obýektleri döredýär.