Heim  >  Artikel  >  Java  >  Eine Erklärung der Leistungsfähigkeit von Singletons in Entwurfsmustern in Java

Eine Erklärung der Leistungsfähigkeit von Singletons in Entwurfsmustern in Java

黄舟
黄舟Original
2017-08-13 09:34:421263Durchsuche

Dieser Artikel stellt hauptsächlich die relevanten Informationen zu Singleton-Designmustern in Java vor. Hier erklären wir den Bösewicht-Modus und den Lazy-Modus. Freunde in Not können sich auf

Liste der Designmuster in Java beziehen Beispiel

Gedanken zu Designmustern

Was ist Designmuster: Als Anfänger lerne ich heute zum ersten Mal formal Designmuster Richtig und verstanden? Designmuster sind sehr wichtig. Was sind Designmuster?

Entwurfsmuster: eine wirksame Idee zur Lösung von Problemen.

Entwurfsmuster: Lösungen zur Lösung spezifischer wiederkehrender Probleme in bestimmten Umgebungen

Mein Verständnis ist, dass Vorgänger beim Software-Design auf ein Problem gestoßen sind. Solche Probleme fassten sie in einer Reihe zusammen effektive und bewährte Lösungen.

Vorteile von Designmustern:

1. Designmuster sind relativ hervorragende Lösungen, und viele Probleme sind typisch und repräsentativ Wir müssen diese Probleme nicht von Grund auf selbst lösen. Das ist gleichbedeutend damit, diese Lösungen auf den Schultern von Giganten wiederzuverwenden.

2. Designmuster sind zu einem gängigen Vokabular geworden, das von Fachleuten verwendet wird, und wenn sie nicht verstanden werden, ist dies nicht förderlich für die Kommunikation.

3. Es kann das von Ihnen entworfene System professioneller machen und ihm eine bessere Architektur verleihen.

Designmuster 1~~Einzelfall

Das Single-Interest-Designmuster wird verwendet, um das Problem zu lösen, in dem nur eine Klasse existieren kann das Speicherproblem. Dies ist abstrakter, wenn Sie beispielsweise ein Mahjong-Spiel spielen und würfeln möchten und die erste Person die angezeigten Zahlen verliert, werden die Leute hinter ihr sie auch verwenden. Im Speicher ist nur eine Kopie der Würfelklasse zulässig. Solche Probleme müssen mit einer einzigen Gehäusedesignlösung gelöst werden.

Der erste Typ: Hungriger chinesischer Stil, komm zuerst alleine raus. Es ist schnell, nimmt aber viel Speicher in Anspruch.


public class Single {
  private final static Single s = new Single();

  //类只能有一个故私有化构造方法,不让外面new对象
  private Single(){
  }
//工厂方法的命名规范
 getinstance
//当外面没办法new对象时候,我们对像给外面调要自己来new
// 当没发new 对象时候,必须是静态方法,给外界使用。
    public static Single getInstance(){
    return s;
  }
}

Der zweite Typ: Lazy Style


//懒汉式
public class Single2 {
  // 先步开内存,需要用的时候才new 
  private static Single2 s=null;
  private Single2(){
  }
  // synchronized 用来防多线程时。第一个和第二个线程抢资源都会进入s==null,
时new 两次。
  public synchronized static Single2 getInstance(){
    if(s==null){
      s = new Single2();
    }
    return s;
  }
}

synchronisiert gilt als Sperre und gehört dazu zur getInstance-Methode von. Wenn die Methode statisch ist, gehört die Sperre zur Klassenvorlage. Wenn die Methode von einem Objekt aufgerufen wird, gehört die Sperre zum Objekt.

Das obige ist der detaillierte Inhalt vonEine Erklärung der Leistungsfähigkeit von Singletons in Entwurfsmustern in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn