Definition: Es wird gemeinsam genutzte Objekte verwendet, um die Speichernutzung zu minimieren und Informationen an möglichst viele ähnliche Objekte wie möglich weiterzugeben. Es ist für große Objekte geeignet, die aufgrund der Wiederholung inakzeptable Speichermengen verwenden.
Merkmale: Reduziert die Erstellung von Objekten stark, reduziert das Systemspeicher und verbessert die Effizienz.
Anwendungen in der Entwicklung auf Unternehmensebene und gemeinsamer Frameworks: Datenbankverbindungspool, String Constant Cache Pool
Spezifisches Codebeispiel:
Import Java.util.hashMap; Import java.util.map; import Java.util.random; öffentliche Klasse Demo {public static void main (String [] args) {für (int i = 0; i <10; i ++) {circle = New Circle (GetColor (); Circle.SetRadius (getRadius ()); Circle.SetX (GEtz ()); Circle.Sety (Getz ()); Circle.Draw (); }} public static String getColor () {String [] colors = {"rot", "orange", "gelb", "cyan", "grün"}; Random random = new random (); int index = random.nextint (4); Rückgabefarben [Index]; } public static double getRadius () {randal randomy = new random (); Return Random.NextDouble ()*20; } public static int gettz () {random randomy = new randal (); retribay.Nextint (100); }}/*** Abstract Encyclopedia -Klasse* Hier ist ein Beispiel für das Zeichnen eines Graphen: Zum Beispiel ist das Zeichnen eines Kreises, das Hinzufügen von Farbe, um ihn zu beheben, die Art und Weise, einen Kreis zu zeichnen, ist der Unterschied die Position des Kreises und der Radius des Kreises*/Schnittstellenform. Beispiel: gemeinsame Farben und unsichtbare Kreiszeichnungsmethoden, nicht gesammelten Radius und Koordinaten*/Class Circle implementiert Form {private int x; privat int y; privates Doppelradius; private Saitenfarbe; public circle (String color) {this.color = color; } public int getX () {return x; } public void setx (int x) {this.x = x; } public int gety () {return y; } public void sety (int y) {this.y = y; } public double getRadius () {Return Radius; } public void setRadius (Doppelradius) {this.radius = radius; } public String getColor () {return color; } public void setColor (String Farbe) {this.color = color; } public void Draw () {System.out.println ("Zeichnen Sie einen Kreis mit den Mittelkoordinaten von: ("+this.x+","+this.y+"), und der Radius ist"+this.radius+","+this.color+")}/*** Die Faktorklasse. Attribute oder Daten werden hier geteilt, wenn man angenommen, dass die Farbe des Kreises festgelegt ist, wir können nur einige feste Farben von Kreisen zeichnen. Farbe) {Kreis C = Map.get (Farbe);Der Xiangyuan -Modus wird hauptsächlich verwendet, um das Phänomen zu lösen, dass eine große Anzahl ähnlicher Objekte eine große Menge an Speicher einnimmt. Da das Gedächtnis eine wertvolle Ressource ist, klassifizieren wir diese ähnlichen Objekte und extrahieren dieselben Teile zum Teilen. Dies kann den Speicheraufwand erheblich sparen. Wir müssen uns jedoch an eine Prämisse erinnern. Während wir Speicher speichern, erhöhen wir die Code -Laufzeit als Prämisse, sodass wir manchmal Zeit und Speicheraufwand ausbalancieren müssen.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.