ホームページ  >  記事  >  バックエンド開発  >  PHP 責任パターン シングルトン パターン_PHP チュートリアル

PHP 責任パターン シングルトン パターン_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:33:52913ブラウズ

パターンはオブジェクト指向開発にとって非常に重要です。パターンは、特定のタスクを実行するオブジェクトを作成し、クラスの責任となるオブジェクトを作成するのに役立ちます。このパターンでは、クラスに関連するコードを変更せずにクラスを変更することもできます。これはクラスのポリモーフィズムと呼ばれます。

シングルトン パターンは責任パターンとも呼ばれ、アプリケーション内で単一の機能アクセス ポイントを作成するために使用されます。シングルトンの考え方と応用について話し合い、しっかりと理解しましょう。

複雑なシステムでは、シングルトン パターンの使用は、アプリケーション状態の同期を維持するのに特に役立ちます。すべてのシングルトン クラスには少なくとも次の 3 つの要素があります:

  • プライベートとしてマークされたコンストラクター。
  • クラスのインスタンスを保存する静的メンバー変数。
  • このインスタンスのパブリック静的メソッドにアクセスします。

プログラムリスト:シングルトンモードクラス

リーリー

プログラムの実行結果:

リーリー

このアプリから見られる特別なものがあります。通常のクラスとは異なり、シングルトン クラスは直接インスタンス化できず、それ自体でのみインスタンス化できます。この効果を実現するには、__construct() メソッドをプライベートとしてマークする必要があります。プライベート コンストラクターを使用してオブジェクトを構築しようとすると、アクセス レベル エラーが発生します。

では、シングルトンクラスはどのように機能するのでしょうか?シングルトンクラスとは、他のクラスにインスタンスを提供し、それを使ってさまざまなメソッドを呼び出すクラスです。シングルトン クラスは内部に格納されたインスタンスを通じて参照を返すため、シングルトン クラスがメモリとシステム リソースを繰り返し占有することがなくなり、アプリケーションの他の部分がリソースを効率的に使用できるようになります。したがって、データベース アクセスを構築するにはシングルトン モードを使用するのが最善です。これにより、データベース接続インスタンスが過剰に作成されなくなり、システムがより高速に実行できるようになります。

オブジェクトがコピーまたは複製されないようにするには、空の __clone() メソッドが必要です。

self::$instance はクラスが初期化されているかどうかを検出できます。インスタンスを保持する静的メンバーが空であるか、まだクラス自体のインスタンスではない場合、インスタンスが作成され、インスタンスを保持する変数に保存されます。

プログラムリスト: プライベートコンストラクターを使用しないシングルトン

プライベートコンストラクターやそれ自体への参照を持たないルーズシングルトン。それが今でもパターンとして考えられているかどうかはわかりません。

リーリー

プログラムの実行結果:

リーリー

プログラムリスト: データベース接続の責任

リーリー

このシングルトンクラスの使い方は?

リーリー

つまり、オブジェクトの取得方法が少し異なり、その使用方法は他のオブジェクトと変わりません。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/752400.html技術記事パターンはオブジェクト指向開発にとって非常に重要です。パターンは、特定のタスクを実行するオブジェクトを作成し、クラスの責任となるオブジェクトを作成するのに役立ちます。パターンを使用すると、クラスを変更することもできます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。