einführen
In Softwaresystemen stehen wir manchmal vor der Erstellung von "komplexem Objekt", das normalerweise aus Unterobjekten jedes Teils unter Verwendung bestimmter Algorithmen besteht. Aufgrund von Änderungen der Anforderungen sind die verschiedenen Teile dieses komplexen Objekts häufig drastischen Veränderungen ausgesetzt, aber der Algorithmus, der sie miteinander kombiniert, ist in der Tat relativ stabil. Wie geht es mit dieser Veränderung um? Wie kann man einen "Einkapselungsmechanismus" bereitstellen, um die Änderungen in "jedem Teil komplexer Objekte" zu isolieren, um den "stabilen Konstruktionsalgorithmus" im System daran zu hindern, sich mit den Anforderungen zu ändern? Dies ist, was das Builder -Modell erwähnt werden soll.
Das Builder -Muster kann die Konstruktion eines komplexen Objekts von seiner Darstellung trennen, so dass der gleiche Konstruktionsprozess unterschiedliche Darstellungen erzeugen kann. Das heißt, wenn wir den Builder -Modus verwenden, muss der Benutzer die zu erstellenden Typen angeben, um sie zu erhalten, und der spezifische Konstruktionsprozess und die Details müssen nicht bekannt sein.
Text
Dieses Muster ist relativ einfach. Bitte geben Sie zuerst den Code ein und erläutern Sie ihn dann
Die Codekopie lautet wie folgt:
Funktion getBeerbyId (ID, Callback) {
// ID verwenden, um Daten anzufordern und die Daten zurückzugeben.
Asyncrequest ('get', 'Beer.uri? id =' + id, function (resp) {
// Rückrufanrufe Antwort
Rückruf (resp. responsetext);
});
}
var el = document.querySelector ('#test');
El.AddeventListener ('Click', getBerbyIdbridge, False);
Funktion getBeerbyidbridge (e) {
GetBeerbyId (this.id, function (Bier) {
console.log ('angefordertes Bier:' + Beer);
});
}
Nach der Definition des Erbauers ist die Tabellenphase ein Rückruf, dh wie die Daten nach dem Erhalten von der Rückruffunktion angezeigt und verarbeitet. Entsprechend muss die Rückruffunktion nicht darauf achten, wie die Daten bei der Verarbeitung der Daten erhalten werden. Das gleiche Beispiel kann auch in der AJAX -Methode von JQuery zu sehen sein. Es gibt viele Rückruffunktionen (wie Erfolg, Fehlerrückruf usw.), und der Hauptzweck besteht darin, die Verantwortlichkeiten zu trennen.
Lassen Sie uns auch ein weiteres Beispiel für JQuery haben:
Die Codekopie lautet wie folgt:
$ ('<div class = "foo"> bar </div>');
Wir müssen nur die zu erzeugenden HTML -Zeichen übergeben, ohne dass das spezifische HTML -Objekt erzeugt wird.
Zusammenfassen
Das Builder -Modell wird hauptsächlich verwendet, um "ein komplexes Objekt in Schritten zu erstellen", wobei "Schritte" ein stabiler Algorithmus ist, während sich die verschiedenen Teile komplexer Objekte häufig ändern. Der Vorteil besteht darin, dass der "Verarbeitungsprozess" des Builder -Modells ausgesetzt ist, wodurch das Buildermodell flexibler wird, und das Builder -Modell entkoppelt den Montageprozess und erstellt spezifische Komponenten, sodass wir uns nicht darum kümmern müssen, wie jede Komponente zusammengebaut wird.