Was ist der Unterschied zwischen Builder Pattern und Flyweight-Muster?
-
20-09-2019 - |
Frage
Was ist der Unterschied zwischen Builder Pattern und Flyweight-Muster in Bezug auf die Nutzung, da sie beide mit einer großen Anzahl von Objekten zu tun hat?
Lösung
Das Muster Builder wird verwendet, um erstellen viele Objekte, wobei das Flyweight Muster über teilen ein solches Sammlung von Objekten.
Diese beiden Muster beide mit „Composites“, das heißt Objekte, die mehrere Elemente aufweisen können, aber sie müssen nicht zusammen überhaupt verwendet werden. Das Urbild Anwendungsfall für Flyweight ist, wo ein Pool von ein paar Dutzend Zeichen Objekte verwendet werden, immer und immer wieder in einem Texteditor (dies ist das Beispiel in der "GoF" book )
Andere Tipps
Gerade aus wikipedia.
Flyweight ist ein Software-Design Muster. Ein Fliehgewicht ist ein Objekt, minimiert die Speichernutzung durch gemeinsame Nutzung als viele Daten wie möglich mit anderen ähnliche Gegenstände; es ist eine Art und Weise zu verwenden, Objekte in großer Zahl, wenn eine einfache wiederholte Darstellung verwenden würde ein inakzeptable Menge an Speicher.
Der Builder Pattern ist ein Software Design-Muster. Die Absicht ist es, abstrakte Schritte des Baus Objekte, so dass unterschiedliche Implementierungen dieser Schritte können Konstrukt verschiedene Darstellungen von Objekte.
Ein hilft mit Objekten zu bauen und die andere Hilfe bei der Speichernutzung. Sie könnten möglicherweise einen Builder auf „Build“ verschiedene Fliegengewicht Objekte verwenden.
Fliegengewicht Muster ist angemessen, wenn „viele Objekte manipuliert werden müssen und diese nicht leisten können, irrelevante Daten zu haben.“ In Java werden String-Objekte als Fliegengewicht verwaltet. Java stellt alle festen Stringliterale in einem wörtlichen Pool. Für redundante Literalen Java hält nur eine Kopie im Pool.
Der Schlüssel Fliegengewicht Arbeit zu machen, ist durch Objektinstanziierung Steuerung einer Factory-Methode oder Builder-Entwurfsmuster verwenden. Die Aufgabe einer Factory-Methode ist einfach Objekte zu erstellen: gegebene Eingabekriterien, gibt ein Objekt des entsprechenden Typs.
Abstrakte Fabrik ist ähnlich wie Builder, dass es möglicherweise zu komplex Objekte konstruieren. Der Hauptunterschied besteht darin, dass das Muster fokussiert Builder ein komplexes Objekt Schritt für Schritt auf die Konstruktion. Zusammenfassung Faktor der Schwerpunkt liegt auf Familien von Produktobjekten (entweder einfach oder komplex).