【デザインパターン】PHPシングルトンパターンの応用シナリオと実装
概要
シングルトン パターンとは何ですか?
クラスが 1 つのオブジェクト (またはインスタンス) のみを作成できる場合、このクラスはシングルトン クラスです。この設計パターンは、シングルトン デザイン パターン、または略してシングルトン パターンと呼ばれます。
シングルトンを使用する理由
-
# リソース アクセスの競合を処理します。
例: ログをファイルに出力する機能。
- # は、グローバルに一意なクラスを表します。
#実装方法
PHP のシングルトンモードを実装するには 3 つの手順が必要です* クラスを保存するために使用される静的メンバー変数。
* オブジェクトの作成または複製を防止するには、__construct と __clone をプライベートとして宣言する必要があります。
* このインスタンスにアクセスするためのパブリック静的メソッド。通常は getInstance
class single { private static $instance ; private function __construct(){} private function __clone(){} public static function getInstance() { if (empty(self::$instance)) { self::$instance = new single(); } return self::$instance; } }
ID を取得するメソッドをシングルトン クラスに追加します。グローバルに一意の ID 番号ジェネレーターが表示されます。
class single { private $id = 0; private static $instance ; private function __construct(){} private function __clone(){} public static function getInstance() { if (empty(self::$instance)) { self::$instance = new single(); } return self::$instance; } public function getId() { return $this->id++; } }
これは本当に完璧ですが、マルチスレッドの場合はどうなるのでしょうか?
スレッドの唯一の単一インスタンスの実装
php、nts の ts バージョンと nts バージョンの違いについて言及する必要があります。 (非スレッドセーフ) シングルスレッド構造、スレッド間でキャッシュデータを共有。 ts (スレッド セーフ) はマルチスレッド機能を備えて構築されており、複数のスレッド間で異なるデータ コピーを使用します。
php の ts バージョンを使用して、スレッド セーフ モードに自動的にアップグレードします。pthreads 拡張機能は、php の ts バージョンにのみインストールできます。
pecl に含まれる pthreads の最後のバージョンは php7.0 に基づいています。github の pthreads プロジェクトも更新を停止しました。興味がある場合は、7.0 にアクセスするだけで履歴を見逃すことができます。
pthreads 拡張機能を php-7.0.9-Win32-VC14-x64 バージョンにインストールしました。
マルチスレッドの場合、シングルトンのスコープはプロセスのみからスレッドのみに変わります。
require 'single.php'; class Request extends Thread { public $url; public function __construct($url) { $this->url = $url; } public function run() { echo single::getInstance()->getId(); echo "\n"; } } $chG = new Request("www.google"); $chG ->start(); $chG->join(); echo $chG->getThreadId(); echo "\n"; $chB = new Request("www.baidu"); $chB ->start(); $chB->join(); echo $chB->getThreadId(); echo "\n";
ここでは 2 つのスレッドが作成されますが、0 から始まる ID は両方の実行で取得できます。これは、2 つのスレッドの単一クラスが 2 つの異なるシングルトン オブジェクトであることを示しています。
PHP のシングルトン モードを実装するには 3 つの手順が必要です
私は PHP でマルチスレッドを使用したことがありません。それはもう後戻りできないことのようです。みんながどう思うかわかりません。
以上が【デザインパターン】PHPシングルトンパターンの応用シナリオと実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









JS シングルトン パターンは、クラスのインスタンスが 1 つだけであることを保証する、一般的に使用される設計パターンです。このモードは主に、名前の競合や繰り返しの読み込みを避けるためにグローバル変数を管理するために使用され、メモリ使用量を削減し、コードの保守性とスケーラビリティを向上させることもできます。

シングルトン パターン: 関数のオーバーロードを通じて、シングルトン インスタンスにさまざまなパラメーターを提供します。ファクトリ パターン: 関数の書き換えを通じてさまざまなタイプのオブジェクトを作成し、作成プロセスを特定の製品クラスから切り離します。

ソフトウェア開発では、複数のオブジェクトが同じリソースにアクセスする必要がある状況によく遭遇します。リソースの競合を回避し、プログラムの効率を向上させるために、デザイン パターンを使用できます。中でも、シングルトン パターンはオブジェクトの作成によく使用される方法で、クラスのインスタンスが 1 つだけであることを保証し、グローバル アクセスを提供します。この記事では、PHP を使用してシングルトン パターンを実装する方法を紹介し、いくつかのベスト プラクティスの提案を提供します。 1. シングルトン モードとは何ですか? シングルトン モードは、オブジェクトを作成するためによく使用される方法で、その特徴は、クラスのインスタンスが 1 つだけであることを確認し、

はじめに PHP デザイン パターンは、ソフトウェア開発における一般的な課題に対する実証済みのソリューションのセットです。これらのパターンに従うことで、開発者はエレガントで堅牢かつ保守しやすいコードを作成できます。これらは、開発者が SOLID 原則 (単一責任、オープン/クローズ、リスコフ置換、インターフェイスの分離、依存関係の反転) に従うのに役立ち、それによってコードの可読性、保守性、拡張性が向上します。デザイン パターンの種類 さまざまなデザイン パターンがあり、それぞれに独自の目的と利点があります。最も一般的に使用される PHP 設計パターンの一部を次に示します。 シングルトン パターン: クラスにインスタンスが 1 つだけあることを保証し、このインスタンスにグローバルにアクセスする方法を提供します。ファクトリ パターン: 正確なクラスを指定せずにオブジェクトを作成します。これにより、開発者は条件付きで次のことを行うことができます。

シングルトン パターンでは、クラスにインスタンスが 1 つだけ存在することが保証され、グローバル アクセス ポイントが提供されます。これにより、アプリケーション内で使用できるオブジェクトが 1 つだけになり、制御されるようになります。シングルトン パターンは、クラスのオブジェクトをインスタンス化せずに、その一意のオブジェクトに直接アクセスする方法を提供します。例<?php classdatabase{ publicstatic$connection; privatefunc

PHP フレームワークにおけるシングルトン モードの拡張とカスタマイズ [はじめに] シングルトン モードは一般的な設計パターンであり、クラスがアプリケーション全体で 1 回だけインスタンス化されることが保証されます。 PHP 開発では、特にフレームワークの開発と拡張において、シングルトン パターンが広く使用されています。この記事では、PHP フレームワークでシングルトン パターンを拡張およびカスタマイズする方法を紹介し、具体的なコード例を示します。 [シングルトン パターンとは] シングルトン パターンとは、クラスがオブジェクト インスタンスを 1 つだけ持つことができ、外部から使用するためのグローバル アクセス ポイントを提供することを意味します。 PHP 開発では、パス

PHP におけるシングルトン モードのスレッド セーフティの問題について考える PHP プログラミングでは、シングルトン モードは一般的に使用されるデザイン パターンであり、クラスのインスタンスが 1 つだけであることを保証し、このインスタンスにアクセスするためのグローバル アクセス ポイントを提供します。ただし、マルチスレッド環境でシングルトン パターンを使用する場合は、スレッドの安全性の問題を考慮する必要があります。シングルトン パターンの最も基本的な実装には、プライベート コンストラクター、プライベート静的変数、およびパブリック静的メソッドが含まれます。具体的なコードは次のとおりです。

PHP 分散システムにおけるシングルトン モードのアプリケーション シナリオとスレッド セーフティ プロセス はじめに: インターネットの急速な発展に伴い、分散システムは現代のソフトウェア開発においてホットなトピックとなっています。分散システムでは、スレッドの安全性は常に重要な問題です。 PHP 開発では、シングルトン パターンは一般的に使用される設計パターンであり、リソース共有とスレッド セーフの問題を効果的に解決できます。この記事では、PHP 分散システムにおけるシングルトン モードのアプリケーション シナリオとスレッド セーフティ プロセスに焦点を当て、具体的なコード例を示します。 1. シングルトンモード
