Frage

Kann jemand bitte geben Sie mir kein Beispiel der Situation in einer Datenbank-gestützte Anwendung, wo ich Flyweight Muster verwenden sollte?

Wie kann ich wissen, dass ich Fliegengewicht Muster an einem Punkt in meiner Anwendung verwenden sollte?

Ich habe Fliegengewicht Muster gelernt. Aber nicht in der Lage einen angemessenen Platz in meinen Datenbank-gestützte Business-Anwendungen zu verstehen, es zu benutzen.

War es hilfreich?

Lösung

Mit Ausnahme einer sehr speziellen Datenbankanwendung, die Flyweight Macht von der Anwendung verwendet werden, aber wahrscheinlich nicht für jede Klasse, die eine Einheit darstellt, die in der Datenbank beibehalten wird . Fliegengewicht verwendet, wenn es sonst könnte ein Bedarf für so viele Instanzen einer Klasse sein, dass, wenn Sie eine jede diskrete Zeit instanziiert Sie es Leistung benötigt würde leiden. Anstatt also, Ihnen eine viel kleinere Anzahl von ihnen instanziiert und Wiederverwendung der Ressourcen für jede erforderliche weise durch nur für jeden Einsatz Datenwerte zu ändern. Dies wäre nützlich in einer Situation, wo zum Beispiel müssen Sie möglicherweise Tausende solcher Klassen instanziiert jede Sekunde, die in einer Datenbank beharrte für Unternehmen im Allgemeinen nicht der Fall ist.

Andere Tipps

Sie sollten jedes Muster anwenden, wenn es sich natürlich als eine Lösung für ein konkretes Problem schon sagt -. Gehen nicht für Orte in Ihrer Anwendung, wo Sie ein bestimmtes Muster anwenden

Flyweight Zweck ist Speicherprobleme zu adressieren, so macht es nur Sinn, sie anzuwenden, nachdem Sie eine Anwendung profiliert haben und festgestellt, dass Sie eine Tonne von identischen Instanzen haben.

Farben und Bürsten von der Basisklassenbibliothek in den Sinn kommen als Beispiele .

Da ein sehr wichtiger Teil der Flyweight ist, dass die gemeinsame Umsetzung unveränderlich ist, gute Kandidaten in einer datengesteuerten Anwendung wären, was Domain-Driven Design als Wert Objekte bezieht sich auf -. aber es wird nur dann relevant, wenn Sie viele identische Werte haben

[Keine DB Kerl so ist dies meine beste Vermutung]

Die eigentlichen Bonus auf das Fliegengewicht Muster sind, dass Sie Daten wiederverwenden können, wenn Sie benötigen; Ein weiteres Beispiel ist die Textverarbeitung, wo im Idealfall würden Sie ein Objekt pro „Zeichen“ in Ihrem Dokument haben, aber das wuld viel zu viele Speicher frisst so der Fliehgewicht Speicher läßt Sie nur eine von jedem eindeutigen Wert speichern, die Sie benötigen.

Ein zweiter (und vielleicht einfachste) Weg, um es zu betrachten ist wie Objektpooling, nur sind Sie auf einem „pro-Feld“ eine Bündelung im Gegensatz zu einem „pro-Objekt“ -Niveau.

In der Tat, jetzt, wo ich darüber nachdenke, dann ist es nicht anders als mit einem (vergleichsweise geringen) Teil des Speichers in c (++) so speichert einige Rohdaten, die Sie Zeigermanipulation tun, um Sachen raus.

[ diesen Wikpedia Artikel ].

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top