java設計モードの単一例の実例と詳細

1647 ワード

java設計モードの単一例の実例と詳細
デザイン思想
デザインモードとは何ですか?初心者として、今日初めて本格的にデザインの勉強をしました。デザインモードとは何かを理解することが重要だと思います。
デザインモード:問題を解決するための有効な思想。
設計モード:特定の環境で繰り返し発生する特定の問題を解決するための解決策
私の理解は前の人がソフトウェアの設計の時にある問題に出会いました。彼らは一連の有効性をまとめました。そして検証された解決案です。
デザインモードのメリット:
1、設計モードはすべていくつかの比較的に優秀な解決策で、多くの問題は典型的で、代表的な問題であり、設計モードを勉強して、私達は自分で頭からこれらの問題を解決しなくてもいいです。巨人の肩に相当して、これらの方案を多重すればいいです。
2、デザインモデルはもう専門家の常用語彙になりました。
3、あなたが設計したシステムをより専門的にして、システムをより良い構造にすることができます。
設計モード1~単例
シングル設計モードはメモリの中に一つしか存在しない種類の問題を解決するために使用されます。これは抽象的です。例えば、麻雀のゲームをしたいです。サイコロをなくして、一番目の人が表示されている数字をなくしました。後ろの人も使います。サイコロという種類はメモリの中に一つしか存在できません。このような問題は一例の設計案で解決する必要があります。
第一種類:餓漢式はまず自分でnewで出てきます。速度が速くて、単にメモリを占用するのが多いです。

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

  //              ,    new  
  private Single(){
  }
//         
 getinstance
//      new    ,            new
//    new     ,       ,     。
    public static Single getInstance(){
    return s;
  }
}

第二種類:怠け者式

//   
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;
  }
}
synchronizedがロックを見るのはget Instanceの方法です。方法がstaticの場合、クラステンプレートに該当します。メソッドがオブジェクト起動時にロックが対象となります。
疑問があれば、メッセージをお願いします。あるいは、当駅のコミュニティで交流して討論してください。ありがとうございます。