Singleton パターンとは
Singleton パターンを用いると、そのクラスのインスタンスが1つしか生成されないことを保証することができる。ロケールやLook&Feelなど、絶対にアプリケーション全体で統一しなければならない仕組みの実装に使用される。
「このクラスのインスタスはたった1つしか作りたくない」というとき、システムの中に1個しか存在しないものをプログラムで表したい場合に使うことができる。
example
以下サンプルプログラム。
Singletonクラス
<?php class Singleton { private static $singleton; private function __construct() { echo("インスタンスを生成しました。" . PHP_EOL); } public static function getInstance(): Singleton { if (isset(self::$singleton) === false) { self::$singleton = new self; } return self::$singleton; } }
main
<?php $obj1 = Singleton::getInstance(); $obj2 = Singleton::getInstance(); echo $obj1 === $obj2 ? "obj1とobj2は同じインスタンスです。" : "obj1とobj2は同じインスタンスではありません。";
実行結果
インスタンスを生成しました。 obj1とobj2は同じインスタンスです。
ソースコード
関連パターン
- PHP7でデザインパターン入門8/23 Abstract Factoryパターン - Do Something
- PHP7でデザインパターン入門7/23 Builderパターン - Do Something
- PHP7でデザインパターン入門15/23 Facadeパターン - Do Something
- PHP7でデザインパターン入門6/23 Prototypeパターン - Do Something
- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/06/19
- メディア: 大型本
- 購入: 51人 クリック: 762回
- この商品を含むブログ (399件) を見る