設計モード---単例モードSingleton(作成型)
3853 ワード
1.概要
プログラミングには常にいくつかのクラスのオブジェクトが必要です.たとえば、データベース・ハンドルからデータベースへの接続は排他的です.接続がオンまたはオフの場合、オーバーヘッドが発生するため、アプリケーションでデータベース・ハンドルを共有します.
クラス自体が一意のインスタンス(静的変数)を保存する責任を負わせます.このクラスは、他のインスタンスが作成されないことを保証し、インスタンスにアクセスする方法(静的メソッド)を提供することができる.
2.例
プログラミングには常にいくつかのクラスのオブジェクトが必要です.たとえば、データベース・ハンドルからデータベースへの接続は排他的です.接続がオンまたはオフの場合、オーバーヘッドが発生するため、アプリケーションでデータベース・ハンドルを共有します.
クラス自体が一意のインスタンス(静的変数)を保存する責任を負わせます.このクラスは、他のインスタンスが作成されないことを保証し、インスタンスにアクセスする方法(静的メソッド)を提供することができる.
2.例
1 <?php
2 class User {
3 static private $_instance = array();//
4 private $_uid ;
5 /**
6 * ,
7 *
8 */
9 private function __construct($uid ) {
10 $this->_uid = $uid;
11 }
12 /**
13 *
14 *
15 * @return unknown
16 */
17 public static function getInstance($uid = 0) {
18 if (!self::$_instance || !isset(self::$_instance[$uid]) ) {
19 self::$_instance[$uid] = new self($uid);
20 }
21 return self::$_instance[$uid];
22 }
23 }