Java の設計パターンにおけるシングルトンの威力の説明

黄舟
リリース: 2017-08-13 09:34:42
オリジナル
1254 人が閲覧しました

この記事では、主に Java のシングルトン設計パターンに関する関連情報を紹介します。ここでは Bad Guy モードと Lazy モードについて説明します。必要な方は、

Java のシングルトン設計パターンを参照してください。アイデア

デザインパターンとは: 初心者として、今日初めてデザインパターンを正式に学びますが、デザインパターンとは何なのかを理解することが重要だと思います。

デザインパターン: 問題を解決するための効果的なアイデア。


デザイン パターン: 特定の環境で繰り返し発生する特定の問題を解決するために使用されるソリューション


私の理解では、先人たちはソフトウェア設計中にある種の問題に遭遇し、効果的な一連の実証済みのソリューションを要約したと考えています。


デザインパターンの利点:

1. デザインパターンは比較的優れた解決策です。デザインパターンを学習することで、問題を最初から解決する必要がありません。巨人の肩の上に立っている場合は、これらのソリューションを再利用するだけです。
2. デザインパターンは専門家が使用する一般的な用語になっており、それを理解していないとコミュニケーションに役立ちません。


3. 設計したシステムをよりプロフェッショナルなものにし、システムの構造をより優れたものにすることができます。


デザインパターン1~~シングルケース


シングルベネフィットデザインパターンは、メモリ内に1つのクラスしか存在できない問題を解決するために使用されます。 これはより抽象的ですが、たとえば、麻雀ゲームをプレイしてサイコロを投げる場合、最初の人が表示された数字を失うと、後ろの人もサイコロを使います。 dice クラスのコピーは 1 つだけメモリ内に許可されます。このような問題は、単一のケース設計ソリューションで解決する必要があります。 最初のタイプ:お腹を空かせた中華風、最初は自分で出てきます。高速ですが、多くのメモリを消費します。

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

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

2番目のタイプ: Lazyスタイル


//懒汉式
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 getInstanceメソッドに属するロックとみなされます。メソッドが静的である場合、ロックはクラス テンプレートに属し、メソッドがオブジェクトによって呼び出される場合、ロックはオブジェクトに属します。

以上がJava の設計パターンにおけるシングルトンの威力の説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート