Sobes.tech
Junior — Middle

Μπορείς να δώσεις ένα παράδειγμα υλοποίησης του μοτίβου εργοστασιακής μεθόδου στον κώδικα;

sobes.tech AI

Απάντηση από AI

Το πρότυπο Factory Method επιτρέπει τη δημιουργία αντικειμένων χωρίς να καθορίζεται η συγκεκριμένη κλάση του αντικειμένου που δημιουργείται. Στο Flutter, αυτό είναι βολικό για τη δημιουργία widget με διαφορετική λογική.

Παράδειγμα υλοποίησης σε 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 επιτρέπει στις υποκλάσεις να δημιουργούν αντικείμενα διαφορετικών τύπων κουμπιών, και ο κώδικας πελάτη εργάζεται με αφαιρέσεις.