335 Wörter
2 Minuten
Dart OOP - Objektorientierte Programmierung

In Dart sind Klassen ein zentrales Konzept der objektorientierten Programmierung. Eine Klasse definiert die Eigenschaften (Variablen) und Verhaltensweisen (Methoden) eines Objekts.

Eigenschaften von Klassen in Dart#

  • Eine Klasse ist eine Blaupause oder Vorlage, aus der Objekte (Instanzen) erzeugt werden können.
  • Sie enthält Variablen (Eigenschaften) und Methoden (Funktionen), die das Verhalten der Objekte definieren.
  • Klassen können Konstruktoren haben, die beim Erstellen von Objekten aufgerufen werden, um deren Anfangszustand festzulegen.
  • Klassen können von anderen Klassen erben und deren Eigenschaften und Methoden übernehmen (Vererbung).
  • Klassen können abstrakt sein, d.h. sie können nicht direkt instanziiert werden, sondern müssen von anderen Klassen erweitert werden.
class Person {
  String name; // Eigenschaft
  int alter;

  // Konstruktor
  Person(this.name, this.alter);

  // Methode
  void vorstellung() {
    print("Hallo, ich bin $name und $alter Jahre alt.");
  }
}

// Objekt erstellen
Person person1 = Person("Max Mustermann", 30);
person1.vorstellung(); // Ausgabe: Hallo, ich bin Max Mustermann und 30 Jahre alt.

factory#

Ein Factory-Konstruktor in Dart ist ein spezieller Konstruktor, der mehr Flexibilität beim Erstellen von Objekten bietet. Im Gegensatz zu regulären Konstruktoren, die immer eine neue Instanz der Klasse erzeugen, kann ein Factory-Konstruktor entweder eine neue Instanz zurückgeben oder eine bereits existierende Instanz der Klasse oder sogar einer Unterklasse.

  • Der Factory-Konstruktor wird mit dem Schlüsselwort factory definiert.
  • Er hat den Namen Person.fromMap und nimmt ein Map-Objekt als Parameter entgegen.
  • Innerhalb des Factory-Konstruktors wird ein neues Person-Objekt erstellt, indem der reguläre Konstruktor Person(…) aufgerufen wird und die Werte aus dem Map extrahiert werden.
  • Dieses neu erstellte Person-Objekt wird dann vom Factory-Konstruktor zurückgegeben.

Der Hauptvorteil des Factory-Konstruktors ist, dass er die Logik für die Objekterstellung kapseln und steuern kann. In diesem Beispiel könnte der Factory-Konstruktor z.B. prüfen, ob die Werte im Map gültig sind, bevor ein neues Objekt erstellt wird. Oder er könnte eine bereits existierende Instanz zurückgeben, anstatt immer eine neue zu erzeugen (Singleton-Muster).

Factory-Konstruktoren werden häufig für die Implementierung von Design-Mustern wie dem Singleton, Builder oder Factory-Methode verwendet. Sie erhöhen die Flexibilität und Kontrolle bei der Objekterstellung.

class Person {
  String firstName;
  String lastName;

  // Regulärer Konstruktor
  Person(this.firstName, this.lastName);

  // Factory-Konstruktor
  factory Person.fromMap(Map<String, String> map) {
    return Person(map['firstName'], map['lastName']);
  }
}
Dart OOP - Objektorientierte Programmierung
https://www.couchidee.com/posts/dart-oop/
Autor
Christian Böhm
Veröffentlicht am
2024-05-23