Sobes.tech
Junior — Middle

Коддо фабрика ыкмасы паттернин ишке ашыруу мисалын келтире аласызбы?

sobes.tech AI

AIден жооп

Фабрика ыкмасы үлгүсү объекттерди түзүүгө мүмкүндүк берет, түзүлүүчү объекттин так классын көрсөтпөстөн. Flutterде бул ар башка логикасы бар виджеттерди түзүү үчүн ыңгайлуу.

Dartте ишке ашыруу мисалы:

abstract class Button {
  void render();
}

class AndroidButton implements Button {
  @override
  void render() {
    print('Android стилиндеги баскычты чагылдыруу');
  }
}

class IOSButton implements Button {
  @override
  void render() {
    print('iOS стилиндеги баскычты чагылдыруу');
  }
}

abstract class Dialog {
  Button createButton();

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

class AndroidDialog extends Dialog {
  @override
  Button createButton() => AndroidButton();
}

class IOSDialog extends Dialog {
  @override
  Button createButton() => IOSButton();
}

void main() {
  Dialog dialog;

  // Платформага жараша керектүү диалог түзөбүз
  bool isAndroid = true;
  if (isAndroid) {
    dialog = AndroidDialog();
  } else {
    dialog = IOSDialog();
  }

  dialog.render();
}

Бул мисалда фабрика методу createButton подкласстарга ар түрдүү баскыч түрлөрүнүн объекттерин түзүүгө мүмкүндүк берет, ал эми кардар коду абстракциялар менен иштейт.