Das Builder-Muster wird für zum Erstellen vieler Objekte verwendet, wobei das Flyweight-Muster über teilen verfügt Sammlung von Objekten.
Diese beiden Muster behandeln beide "Verbundwerkstoffe", d. h. Objekte, die mehrere Elemente haben können, aber sie müssen überhaupt nicht zusammen verwendet werden. Der Archetyp Anwendungsfall für Flyweight ist, wo ein Pool von ein paar Dutzend Zeichenobjekte in einer Texteditoranwendung immer wieder verwendet wird (dies ist das Beispiel in "GoF "Buch )
Direkt aus Wikipedia.
Fliegengewicht ist ein Software-Design Muster. Ein Fliegengewicht ist ein Objekt, das minimiert den Speicherverbrauch durch Teilen als viel Daten wie möglich mit anderen ähnliche Objekte; es ist ein Weg zu benutzen Objekte in großen Zahlen, wenn eine einfache wiederholte Darstellung würde ein verwenden inakzeptable Menge an Speicher.
Das Builder-Muster ist eine Software Design-Muster. Die Absicht ist es abstrakte Konstruktionsschritte von Objekte so unterschiedlich Implementierungen dieser Schritte können konstruiere verschiedene Darstellungen von Objekte.
Einer hilft beim Erstellen von Objekten und der andere hilft bei der Speichernutzung. Du könntest möglicherweise einen Builder verwenden, um verschiedene Fliegengewichtobjekte zu "bauen".
Fliegengewicht Muster ist angemessen, wenn "viele Objekte manipuliert werden müssen und diese sich nicht leisten können, überflüssige Daten zu haben." In Java werden String-Objekte als Flyweight verwaltet. Java setzt alle festen String-Literale in einen Literal-Pool. Bei redundanten Literalen behält Java nur eine Kopie im Pool.
Der Schlüssel zum Fliegenfliegen ist die Steuerung der Objektinstanziierung mithilfe einer Factory-Methode oder eines Builder-Entwurfsmusters. Die Aufgabe einer Factory-Methode besteht einfach darin, Objekte zu erstellen: Geben Sie bei Eingabe-Kriterien ein Objekt des entsprechenden Typs zurück.
Abstract factory ist dem Builder ähnlich, da es auch komplexe Objekte konstruieren kann. Der Hauptunterschied besteht darin, dass das Builder-Muster sich darauf konzentriert, ein komplexes Objekt Schritt für Schritt aufzubauen. Der Schwerpunkt von Abstract Factor liegt auf Familien von Produktobjekten (entweder einfach oder komplex).
Tags und Links design-patterns builder-pattern flyweight-pattern