検索
ホームページよくある問題シングルトンパターンとは何ですか?

シングルトン モードは、型を作成する一般的に使用されるソフトウェア デザイン パターンです。このモードのメソッドで作成されたクラスは、現在のプロセスにインスタンスを 1 つだけ持ちます。その利点により、すべてのオブジェクトが一意のインスタンスに確実にアクセスできるようになります。メモリのオーバーヘッドとシステム パフォーマンスのオーバーヘッドを削減します。

シングルトンパターンとは何ですか?

#シングルトン パターンは、デザイン パターンの最も単純な形式の 1 つです。このパターンの目的は、クラスのオブジェクトをシステム内の唯一のインスタンスにすることです。これを実現するには、まずクライアント側でインスタンスを作成します。したがって、オブジェクト クラスの一意のインスタンスの生成のみを許可し、生成されるオブジェクトへのすべてのアクセスを「ブロック」するメカニズムを使用する必要があります。ファクトリ メソッドを使用して、インスタンス化プロセスを制限します。クラスのインスタンスに別の一意のインスタンスを生成しても意味がないため、このメソッドは静的メソッド (クラス メソッド) である必要があります。

シングルトン モードの実装方法

通常、Java 言語でのシングルトン モードの構築方法は 2 つあります:

  • Lazy スタイル - スレッドアンセーフ: 最も基本的な実装方法であるスレッド コンテキスト シングルトンは、すべてのスレッドで共有する必要はなく、パフォーマンスを向上させるために同期などのロックを追加する必要もありません。

  • #遅延モード - スレッド セーフ: スレッド セーフを確保するための同期などの遅延モードと組み合わせると、相対的なパフォーマンスが非常に低くなり、ほとんどの場合、同期は必要ありません

  • ハングリーマン・ウェイ。クラスのロード時に構築されるグローバル シングルトン インスタンスを指します。

  • #ロックの種類を再確認してください。遅延スタイルに基づいて、スレッド間の競合がないように synchronize キーワードと volatile キーワードが使用され、最初の作成時に複数のインスタンスが生成されます。最初の作成のみが同期され、比較的高いパフォーマンスが得られます
  • 登録タイプ。作成されたクラスのグローバル プロパティとして存在します。
  • # 列挙は、作成されたクラスが読み込まれるときに作成されます。 Java の列挙クラス自体もシングルトン モードです
  • 推奨チュートリアル: "
  • PHP
"

以上がシングルトンパターンとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール