PHP でシングルトンパターンを実装する方法
PHP のシングルトンパターンは次の手順で実装できます。
- 外部からのインスタンス化を直接に防ぐには、クラスを作成してコンストラクタをプライベートにします。
- クラス内に、クラスの唯一のインスタンスを保持するための、静的プライベート変数を作成する。
- クラスのインスタンスをユニークに取得するための静的メソッドを定義します。メソッド内部でインスタンスがすでに作成されているかを判定し、作成されていなければインスタンスを新規作成して静的変数に代入し、最後にそのインスタンスを返します。
- 他のサイトでクラスを使用する必要がある場合は、静的公開メソッドを呼び出してクラスの唯一のインスタンスを取得できます。
以下にコードの実装例を示します。
class Singleton
{
private static $instance;
private function __construct()
{
// 私有构造函数,防止外部实例化
}
public static function getInstance()
{
if (!self::$instance) {
self::$instance = new self();
}
return self::$instance;
}
public function someMethod()
{
// 单例类的方法
}
}
// 使用方式
$singleton = Singleton::getInstance();
$singleton->someMethod();
上記の実装により、アプリケーション全体でSingletonクラスのインスタンスが1つしか存在しないことが保証されます。