Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint
Share this Page URL
Help

4. Funktionen > Konfigurations-Objekte

Konfigurations-Objekte

Das Konfigurations-Objekt-Muster ist eine Möglichkeit, aufgeräumtere APIs bereitzustellen, die sich besonders dann anbieten, wenn Sie eine Bibliothek oder anderen Code schreiben, der von anderen Programmen genutzt wird.

Beim Entwickeln und Warten von Software ändern sich die Anforderungen ständig – das lässt sich nie ganz vermeiden. Häufig beginnen Sie mit bestimmten Anforderungen, die aber nach und nach erweitert werden.

Stellen Sie sich vor, Sie schreiben eine Funktion addPerson(), der man einen Vor- und einen Nachnamen übergibt und die eine Person einer Liste hinzufügt:

function addPerson(first, last) {...}

Später erfahren Sie, dass auch das Geburtsdatum und optional auch noch das Geschlecht und die Adresse hinzugefügt werden müssen. Also passen Sie die Funktion an und fügen diese neuen Parameter hinzu (wobei Sie darauf achten, optionale Parameter an das Ende der Liste zu setzen):

function addPerson(first, last, dob, gender, address) {...}

Die Signatur dieser Funktion wird schon jetzt ein wenig zu lang. Aber jetzt soll auch noch ein Benutzername dazukommen, der unbedingt notwendig ist und auf keinen Fall optional sein darf. Nun muss der Anwender der Funktion auch die optionalen Parameter mitgeben und darauf achten, dass er die Reihenfolge nicht durcheinander bringt:

addPerson("Bruce", "Wayne", new Date(), null, null, "batman");

Das Übergeben einer großen Anzahl von Parametern ist nicht sehr praktisch. Besser ist es, alle Parameter durch einen einzigen zu ersetzen, bei dem es sich um ein Objekt handelt. Nennen wir ihn conf für »Konfiguration«:

addPerson(conf);

Dann kann der Anwender der Funktion Folgendes machen:

var conf = {
    username: "batman",
    first: "Bruce",
    last: "Wayne"
};
addPerson(conf);

Die Vorteile des Konfigurations-Objekts sind folgende:

  • Man muss sich die Parameter und ihre Reihenfolge nicht merken.

  • Sie können optionale Parameter problemlos überspringen.

  • Der Code lässt sich leichter lesen und warten.

  • Parameter können einfacher hinzugefügt und entfernt werden.

Nachteile des Konfigurations-Objekts sind diese:

  • Sie müssen sich die Namen der Parameter merken.

  • Eigenschafts-Namen können nicht minifiziert werden.

Dieses Muster kann nützlich sein, wenn Ihre Funktion zum Beispiel DOM-Elemente erzeugt oder die CSS-Eigenschaften eines Elements setzt, da Elemente und Styles viele (oft optionale) Attribute und Eigenschaften besitzen.

  • Safari Books Online
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint