Sobes.tech
Junior — Middle

Vai vari sniegt piemēru, kā realizēt fabrika metodes modeli kodā?

sobes.tech AI

Atbilde no AI

Fabrikas metodes paraugs ļauj izveidot objektus, nenorādot konkrētu izveidotā objekta klasi. Flutter tas ir ērti, lai izveidotu dažādas loģikas widgetus.

Dart piemērs:

abstract class Button {
  void render();
}

class AndroidButton implements Button {
  @override
  void render() {
    print('Android stila pogas renderēšana');
  }
}

class IOSButton implements Button {
  @override
  void render() {
    print('iOS stila pogas renderēšana');
  }
}

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;

  // Atkarībā no platformas, izveidojam nepieciešamo dialogu
  bool isAndroid = true;
  if (isAndroid) {
    dialog = AndroidDialog();
  } else {
    dialog = IOSDialog();
  }

  dialog.render();
}

Šajā piemērā fabrikas metode createButton ļauj apakšklasēm izveidot dažādu tipu pogu objektus, un klienta kods strādā ar abstrakcijām.