タグ

ブックマーク / qiita.com/trashtoy (2)

  • Singleton パターンの使いどころをまとめてみた

    GoFのデザインパターンの中でも特に知名度の高い (そして間違った使われ方の多い) Singleton パターン, 皆様は有効活用してますか? 今回は自分の考える Singleton パターンの有効な使いどころを NG コード集も添えて説明したいと思います. (※サンプルコードは JavaPHP で記載します) 概要 Singleton パターンを適用すべき条件について, 結論を簡単に書いてしまうと 状態を持たないこと ポリモーフィズムが絡む (抽象クラスまたはインタフェースを実装している) こと の 2 点に尽きます. おそらくこれらを無意識的に実践しているプログラマーも多いのではないかと思います. 状態を持たないこと 鉄則です. メンバ変数を含んだシングルトンパターンって, それ単なるグローバル変数ですから! WEB アプリケーションのフレームワークなどでこんなコードを見たことは

    Singleton パターンの使いどころをまとめてみた
    iww
    iww 2016/01/04
    『状態を持たないこと』
  • PHPの静的変数 (static変数) の挙動まとめ - Qiita

    PHP には「静的変数」 (static 変数) と呼ばれる言語仕様があります。概要は PHP マニュアルの以下のページ PHP: 変数のスコープ - Manual を参照してください。 マニュアルでは関数内で使った場合の例しか載っていなかったので、クラスメソッド・インスタンスメソッド・trait などに使用した場合にどうなるのか調べてみました。 結論は、簡単に言うと クラス毎に独立 インスタンス間で共通 となっています。 検証過程 関数で使用した場合 これは PHP マニュアルに載っている例と同じです。関数を呼び出すたびに $num が 1 ずつ増加します。(PHP 5.1.0 - 5.5.13 で確認) <?php function testFunc() { static $num = 0; $num++; echo __FUNCTION__ . $num . PHP_EOL; } t

    PHPの静的変数 (static変数) の挙動まとめ - Qiita
  • 1