Uncategorized

Muster vorlage retourenschein

29 Jul , 2020   David  

Im obigen UML-Klassendiagramm verweist die Client-Klasse (1) auf die FlyweightFactory-Klasse, um Flyweight-Objekte zu erstellen/teilen und (2) auf die Flyweight-Schnittstelle, um eine Operation auszuführen, indem sie den extrinsischen (Varianten-)Zustand (flyweight.operation(extrinsicState)) übergibt. Die Flyweight1-Klasse implementiert die Flyweight-Schnittstelle und speichert einen intrinsischen (invarianten) Zustand, der gemeinsam genutzt werden kann. Das Sequenzdiagramm zeigt die Laufzeitinteraktionen: Das Client-Objekt ruft getFlyweight(key) auf der FlyweightFactory auf, die ein Flyweight1-Objekt erstellt und zurückgibt. Nach dem Aufruf von operation(extrinsicState) für das zurückgegebene Flyweight1-Objekt ruft der Client erneut getFlyweight(key) auf der FlyweightFactory auf, die nun das bereits vorhandene Flyweight1-Objekt teilt und zurückgibt. Flyweight ermöglicht es Ihnen, sperrige Daten zu teilen, die jedem Objekt gemeinsam sind. Mit anderen Worten, wenn Sie der Meinung sind, dass sich dieselben Daten für jedes Objekt wiederholen, können Sie dieses Muster verwenden, um auf das einzelne Objekt zu verweisen und somit problemlos Platz zu sparen. Hier erstellt der FlyweightPointer ein statisches Mitgliedsunternehmen, das für jedes Objekt von MyObject verwendet wird. Ihre Ticketklassen können dann verschiedene Schnittstellen implementieren, um Daten unterschiedlicher Typen bereitzustellen oder eine Art Datenvorlage bereitzustellen. Das Template-Methodenmuster nutzt das Hollywood-Prinzip: Rufen Sie uns nicht an, wir rufen Sie an. Die Vorlagenmethode in der übergeordneten Klasse steuert den gesamten Prozess, bei Bedarf “Aufrufen” von Unterklassenmethoden. Das Hollywood-Prinzip vermeidet Komponenten auf niedriger Ebene, abhängig von Komponenten auf hoher Ebene, und gibt stattdessen diesen Low-Level-Klassen (ConcreteClass) eine Möglichkeit, sich an die übergeordnete Klasse (AbstractClass) ahooken zu lassen. Das Muster der Vorlagenmethode schlägt vor, dass Sie einen Algorithmus in eine Reihe von Schritten aufschlüsseln, diese Schritte in Methoden umwandeln und eine Reihe von Aufrufen dieser Methoden in einer einzelnen Vorlagenmethode einfügen.

Die Schritte können entweder abstrakt sein oder eine Standardimplementierung haben. Um den Algorithmus zu verwenden, muss der Client eine eigene Unterklasse bereitstellen, alle abstrakten Schritte implementieren und bei Bedarf einige der optionalen Schritte überschreiben (jedoch nicht die Vorlagenmethode selbst). Die AbstractClass enthält die templateMethod(), die endgültig gemacht werden soll, damit sie nicht überschrieben werden kann. Diese Vorlagenmethode verwendet andere verfügbare Operationen, um den Algorithmus auszuführen, ist jedoch für die tatsächliche Implementierung dieser Methoden entkoppelt. Alle Vorgänge, die von dieser Vorlagenmethode verwendet werden, werden abstrakt, sodass ihre Implementierung in Unterklassen zurückgestellt wird.

Comments

comments