シングルトン

Posted by muchag | PHP,デザインパターン | 2015-02-04 (水) 14:15:38

シングルトン について。

概要

そのクラスのインスタンスが1つしか生成されないことを保証することができる。
ロケールやLook&Feelなど、絶対にアプリケーション全体で統一しなければならない仕組みの実装に使用される。
Wikipedia:Singleton パターン
 

メリット

 

デメリット

 

テンプレート
PHP
  1. class Singleton
  2. {
  3.     #---------------------------------------
  4.     # property 変数宣言
  5.     #---------------------------------------
  6.     private  $app_name = '';
  7.  
  8.     #---------------------------------------
  9.     # class constructor
  10.     #---------------------------------------
  11.     public function __construct( $app_name )
  12.     {
  13.         $this->app_name = $app_name;
  14.     }
  15.  
  16.     #---------------------------------------
  17.     # class destructor
  18.     #---------------------------------------
  19.     public function __destruct() {}
  20.  
  21.     #---------------------------------------
  22.     # method getInstance
  23.     #---------------------------------------
  24.     public static function getInstance( $app_name )
  25.     {
  26.         static $instance;
  27.  
  28.         if ( $instance === null ) {
  29.             $instance = new self( $app_name );
  30.         }
  31.  
  32.         return $instance;
  33.     }
  34. }

 
Qiita:PHPの静的変数 (static変数) の挙動まとめ
を参考にして、クラス変数を getInstance() の中に閉じ込めている。
 
ExiZ.org:PHPのシングルトンでコンストラクタ的な動きをする
を参考にして、コンストラクタを機能させている。
 

ルール

実証していないので、間違っているかも。

  1. require_once( 'Singleton.php' );
  2.  
  3. // 変数、メソッドを呼び出す場合
  4. Singleton::getInstance()->moge;
  5. Singleton::getInstance()->yoge();
  6.  
  7. // 変数に格納したい場合
  8. $hoge = Singleton::getInstance();
  9. $hoge->moge;
  10. $hoge->yoge();
  11.  
  12. // クラス内定数(const)を呼び出す場合
  13. Singleton::ROGE;
  14. $hoge::ROGE; // こちらはEclipseでエラーになった
PHP,デザインパターン | 2015-02-04 (水) 14:15:38 |

デザインパターン -> 参考サイト

Posted by muchag | オブジェクト指向 | 2015-01-18 (日) 12:57:27

デザインパターンの意味がやっと理解できた。
後は実際の内容を勉強せねば。。。

とりあえず

ヌーラボ:サルでもわかる 逆引きデザインパターン
→概念から具体例まで、とてもわかりやすかった
Wikipedia:デザインパターン (ソフトウェア)
Do You PHP はてな
→古い記事ではあるが、GoFに沿った一通りの解説がある。入門用

オブジェクト指向 | 2015-01-18 (日) 12:57:27 |

オブジェクト指向

Posted by muchag | PHP,オブジェクト指向 | 2014-12-25 (木) 18:16:47

オブジェクト指向については、中々ピンとこない。
まずは慣れないといけないね。

ひとまずは覚書から。

参考サイト

Objective-PHP.NET:PHPオブジェクト指向基礎
とてもわかりやすい説明に加え、実践式の説明もあり、とても受け入れやすかった。

PHP,オブジェクト指向 | 2014-12-25 (木) 18:16:47 |