PHP デザイン パターン シングルトン パターンの例 分析_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:06:12
オリジナル
798 人が閲覧しました

PHP 設計パターン シングルトン パターンのサンプル分析

この記事では、主に PHP デザイン パターンのシングルトン パターンを紹介し、そのサンプルは、必要な友人に参照することができます。それに

この記事の例では、PHP デザイン パターンのシングルトン モードについて説明します。皆さんの参考に共有してください。具体的な分析は次のとおりです:

シングルケースモード (責任モード):

簡単に言うと、オブジェクト (デザイン パターンを学ぶ前にオブジェクト指向の考え方を理解する必要があります) は特定のタスクのみを担当します。

単一インスタンスクラス:

1. コンストラクターはプライベートとしてマークする必要があります (アクセス制御: 外部コードが new 演算子を使用してオブジェクトを作成するのを防ぐため)。シングルトン クラスは他のクラスでインスタンス化できず、それ自体でのみインスタンス化できます。 2. クラスのインスタンスを保持する静的メンバー変数を用意します

3. このインスタンスにアクセスするためのパブリック静的メソッドを用意します (一般的に getInstance() メソッドはシングルトン クラスをインスタンス化するために使用され、instanceof 演算子はクラスがインスタンス化されたかどうかを検出するために使用できます)

さらに、オブジェクトがコピー (クローン作成) されるのを防ぐために __clone() メソッドを作成する必要があります

なぜ PHP シングルトン パターンを使用するのですか?

1. PHP は主にデータベース アプリケーションで使用されるため、アプリケーション内で大量のデータベース操作が行われるため、新しい操作によって大量のリソースが消費されることを回避できます。

2. システム内で特定の構成情報をグローバルに制御するクラスが必要な場合は、ZF の FrontController セクションにあるシングルトン モードを使用して簡単に実装できます。

3. ページリクエストでは、すべてのコード (データベース操作クラス db など) が 1 つのクラスに集中しているため、クラス内にフックを設定し、どこでも var_dump や echo を回避してログを出力できるため、デバッグが簡単です。

コードの実装:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

/1**

* デザインパターン: シングルトンパターン

* $_instance は静的プライベート変数として宣言する必要があります

* 外部プログラムが new を使用できないようにするには、コンストラクターとデストラクターをプライベートとして宣言する必要があります

* クラスにより、シングルトン パターンの意味が失われます

* getInstance() メソッドを public に設定し、このメソッドを呼び出す必要があります

* インスタンスへの参照を返す

*::operators は静的変数と静的関数のみにアクセスできます

* 新しいオブジェクトはメモリを消費します

* 使用シナリオ: 最も一般的に使用される場所はデータベース接続です。

* シングルトン モードを使用してオブジェクトを生成した後、

* このオブジェクトは他の多くのオブジェクトで使用できます。

*/

クラスダンリ{

//クラスインスタンスの静的メンバー変数を保存する

プライベート静的 $_instance;

//プライベートタグの構築方法

プライベート関数 __construct(){

echo 'これは構築されたメソッドです;';

}

//オブジェクトのコピーやクローン作成を防ぐために __clone メソッドを作成します

パブリック関数 __clone(){

trigger_error('クローンは許可されていません!',E_USER_ERROR);

}

//シングルトン メソッド、インスタンスへのアクセスに使用されるパブリック静的メソッド

パブリック静的関数 getInstance(){

if(!(self::$_instanceinstanceofself)){

self::$_instance = 新しい自分;

}

self::$_instance を返す;

}

パブリック関数テスト(){

echo 'メソッドの呼び出しに成功しました';

}

}

// new を使用してプライベート マーク コンストラクターでクラスをインスタンス化すると、エラーが報告されます

//$danli = 新しいダンリ();

//正しい方法は、二重コロン::演算子を使用して静的メソッドにアクセスし、インスタンスを取得することです

$danli = ダンリ::getInstance();

$danli->test();

//オブジェクトをコピー (クローン作成) すると E_USER_ERROR が発生します

$danli_clone = $danli のクローン;

この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/960583.html技術記事 PHP デザイン パターンのシングルトン パターンの分析例 この記事では、PHP デザイン パターンのシングルトン パターンを中心に、参考になるシングルトン パターンの原理と関連する使用テクニックを分析する例を紹介します。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!