Wann Frühling Prototyp-Bereich?
Möchte ich wissen, Wann sollte ich genau benutzen die prototype
Umfang im Frühjahr? Ich habe verstanden, dass singleton
gibt das gleiche Objekt zurück Beispiel, wenn die bean angefordert wird.
Dann, warum sollten wir prototype
?
Erklärungen mit Beispielen helfen, eine Menge zu verstehen, die Notwendigkeit für Sie.
InformationsquelleAutor Rahul | 2014-02-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden klare, einfache Definitionen:
Prototype-scope = Ein neues Objekt erstellt wird, jedes mal, wenn es injiziert wird/nachgeschlagen. Es wird mit neuen
SomeBean()
jeder Zeit.Singleton-scope = dasselbe Objekt zurückgegeben wird, jedes mal, wenn es injiziert wird/nachgeschlagen. Hier wird die Instanzierung einer Instanz von
SomeBean
und dann wieder jedes mal.Prototype-bean erstellt, die zum Zeitpunkt der Nutzung. Also, wenn Sie möchten, um zustandsbehaftete beans gibt es starken Bedarf manchmal einer Prototypen-Bereich oder, wenn Sie nicht die Gewohnheit, cache-Werte in den beans. Prototype-bean zugeordnet werden können, auf einer Sitzung oder einige nennen.
Beispiel:
Ein data access object (DAO) ist nicht in der Regel so konfiguriert, wie ein Prototyp, denn ein typisches DAO hält keine Konversation Zustand, es war einfach leichter, sich für dieses Autors, die Wiederverwendung der Kern des singleton-Diagramm.
Nur diejenigen, die Sie haben wollen, frisch Instanz zu jeder Zeit. Ehrlich gesagt, würde ich nicht verwenden, Prototyp in 99% der Fälle.
Eine gute übung ist das bestehen Abhängigkeiten über den Konstruktor. Daher sollten Sie nie verwenden, Umfang Prototyp. Verwenden Sie stattdessen neue oder eine singleton-factory.
Trotzdem ist es nicht klar, Wann Prototyp ? Kann b eine Echtzeit-Beispiel würde hier helfen
Im Grunde stellen Sie sich die situation, dass Sie wollen, um jedes mal neue Objekt beim Zugriff auf bean-Prototyp bean. Ihre bean wird instanziert werden jedes mal, wenn Sie zugreifen möchten, wie Sie es verwenden
new User()
in einfachen POJO.InformationsquelleAutor RMachnik
Gibt es einige interessante Anwendungsfälle durch den Einsatz von scope Prototyp Sie bauen eine bessere und zuverlässige Anwendung, design/Architektur, zum Beispiel ein Echtzeit-system.
Vorstellen, dass Sie bauen eine Echtzeit-system für Fahrzeug-tracking -, und Sie haben 2.000.000 Autos-sharing-Informationen werden alle 5 Sekunden
In der server-Seite wird die Arbeit mit zwei oder mehr verschiedenen Gruppe von Konfigurationen, eine für PKW und eine für LKW.
Basierend auf diesem einfachen Beispiel, wenn Sie entwerfen Sie Ihre Anwendung auf die Arbeit mit unterschiedlichen Gruppen-Konfiguration im Speicher durch die Prototyp-Muster erzielen Sie eine bessere Leistung.
So, in diesem Fall, wenn der server erhält eine neue Nachricht, von einem Truck zum Beispiel, der server erhält die Instanz der Konfiguration im Speicher aus einer hashmap Instanzen VehicleGrupConfiguration und wenden Sie dann die Konfiguration Verhalten, dass diese Botschaft muss haben, e.g: wie time-out, Wiederholung... und etc.
Möchte ich hervorheben, dass es viele Arten zum implementieren dieser situation, aber dieses Beispiel zeigt, dass ein Prototyp-Muster ist sehr mächtig in Sachen Leistung und design patterns.
Hi @MarkNorman könnten Sie bitte teilen Sie ein Beispiel, wie kann ich mir diese Lösung ausgedacht "erwägen Sie Stattdessen, die Definition einer Gruppe von Singletons von der gleichen Art, die jeweils beim Start erstellt werden, mit einem anderen Staat" Klingt sehr interessant deine Idee, ich Danke Ihnen sehr für den Austausch von Ihr feedback.
Sie finden hier ein Beispiel: baeldung.com/spring-data-jpa-multiple-databases. Beachten Sie, dass es zwei Konfigurations-Bohnen der Art
LocalContainerEntityManagerFactoryBean
, ein Namen -userEntityManager
und andere genanntproductEntityManager
.InformationsquelleAutor Lucas Pires