ホームページ >バックエンド開発 >PHPチュートリアル >PHPシングルトンモード
著作権表示:
著者: Toutiaohao/Maisui Technology
リンク: http://toutiao.com/i6282868901994824193/
出典: Toutiao (Toutiao のクリエイティブ プラットフォーム)
転載する必要がある場合は、Tingyun College チームのメンバーである Ruan Xiaoyi まで電子メールでご連絡ください: ruanqy#tingyun.com
シングルトン モデルは次のとおりです。作成モデルとは何ですか? つまり、作成パターンはインスタンス化プロセスを抽象化します。これらは、システムがそのオブジェクトがどのように作成、構成、表現されるかに依存しないようにするのに役立ちます。クラス作成パターンは、継承を使用してインスタンス化されたクラスを変更します。オブジェクト作成パターンはインスタンス化を別のオブジェクトに委任します
概要: クラスにインスタンスが 1 つだけあることを確認し、それにアクセスするためのグローバル アクセス ポイントを提供します
1 コンストラクターはプライベートとしてマークする必要があります (アクセス制御: 外部コードが new 演算子を使用してオブジェクトを作成することを防止します)。シングルトン クラスは他のクラスでインスタンス化できず、それ自体でのみインスタンス化できます。
2 クラスのインスタンスを保存する静的メンバー変数があります
3 このインスタンスにアクセスするためのパブリック静的メソッドがあります (getInstance() メソッドは、シングルトン クラスのインスタンスを作成するために一般的に使用されます。
4 オブジェクトがコピー (クローン作成) されないようにするには、__clone() メソッドを作成する必要があります。
1 php のアプリケーションは主にデータベース アプリケーションに使用されるため、アプリケーション内で多数のデータベース操作が行われることになります。シングルトン モードを使用すると、新しい操作による大量のリソースの消費を回避できます。
2 システムの場合、特定の構成情報をグローバルに制御するクラスが必要なので、Config
3 1 ページのリクエストで簡単に実装できます。すべてのコード (データベース操作クラス db など) がすべて 1 つのクラスに集中しているため、クラス内にフックを設定してログを出力し、どこでも var_dump や echo を回避できます。
コード例
try{$singleObj = \haibao\design\web\common\design\single\Single::getInstance();//$singleObj1 = clone $singleObj;echo $singleObj->getData();}catch (\Exception $e){echo $e->getMessage();exit;}<?phpnamespace haibao\design\web\common\design\single;class Single{public static $_instance;private function __construct(){}public function __clone(){trigger_error('Clone is not allow!',E_USER_ERROR);}public static function getInstance(){if(!(self::$_instance instanceof self)){self::$_instance = new self;}return self::$_instance;}public function getData(){return "<br/>".rand(1,100)."<br/>";}}
さらに技術的な記事を読みたい場合は、Tingyun Technology Blog にアクセスし、Tingyun 公式 Web サイトにアクセスして、アプリケーション パフォーマンス最適化の魔法をさらに体験してください。