タグ

Singletonに関するmimosafaのブックマーク (7)

  • ワタシはSingletonがキライだ

    DevLOVE X Day1 C-5のセッションです。 ITの活用範囲の広がりとともに、費用・品質よりもデリバリを優先するプロジェクトも増えてきました。しかし「しっかり考えるよりも、作ってリリースしちゃおうぜ、正解なんて誰にも分からないんだから」というマントラを唱えながら、返済見込みの立たない大量の技術的負債を抱える。それが最善の選択なのか、もう少しだけ立ち止まって考えてみませんか? YAGNIという言葉を便利に使いすぎてはいませんか? コードを書きなぐるのと、ちょっと考えて設計して作るのとで、そんなに開発スピードに違いがありますか? 考えてみたいと思います。

    ワタシはSingletonがキライだ
  • シングルトンの抽象化クラス&トレイトを作成する - Qiita

    シングルトンパターンの抽象化クラスを作成してみます。まずはシングルトンパターンのおさらいから。 クラスのインスタンスはnew演算子を使って生成されます。たとえば、5回new演算子を使った場合、5つのインスタンスが生成されます。当然、1000回実行すると1000個のインスタンスが生成されます。 しかし、インスタンスを生成するという処理は、コストがかかる処理です。オブジェクトの使いまわしをしないで毎回newするのは、大きなコストがかかってしまうことを意味します。 また、「どうしてもインスタンスを1つしか生成したくない」といった場面も出てきます。たとえば、システムの設定を表現するクラスや、システム全体で一度読み込んだデータをキャッシュしておくクラスなどです。 この場合、プログラミングする際に注意深くnew演算子を使うことで、1つしかインスタンスを生成させないようにすることもできます。しかし、それ

    シングルトンの抽象化クラス&トレイトを作成する - Qiita
  • PHP5.4のtraitを使ったシングルトンパターン実装によるtrait入門 - id:anatooのブログ

    PHP5.4 alpha1がリリースされた。このリリースでは、PHPのオブジェクト指向言語の新たな機能としてtraitと呼ばれる機能が追加された。PHP5.4におけるtraitとは、型に影響を与えずにクラスに適用できるメソッドとプロパティの集合である。 早速PHP5.4 alpha1をインストールし、traitを使ってシングルトンパターンを実装した。このコードでは、クラスの継承関係に影響を与えずにシングルトンパターンをモジュール化している。 <?php trait Singleton { protected function __construct() { } static function getInstance() { static $obj = null; return $obj ?: $obj = new static; } function __clone() { throw n

    PHP5.4のtraitを使ったシングルトンパターン実装によるtrait入門 - id:anatooのブログ
  • Singletonパターンの抽象化クラスを作る(PHP 5.3以上の話) – sawara.me

    シングルトンパターンでクラスを作成するとき、getInstanceなるメソッドを毎度毎度各クラスに作っていたのですが、これを何とか抽象化してみようとした話。 一般的なシングルトンパターン(おさらいも兼ねて) たぶん、こんな感じ。 class Singleton { private static $_instance = null; public static function getInstance() { if(is_null(self::$_instance)) { self::$_instance = new self(); } return self::$_instance; } // --- 以下このクラスのなんか処理 --- // } で、呼び出すときはこんな感じ。 $test = Singleton::getInstance(); これで変数「$test」は「Singleto

    Singletonパターンの抽象化クラスを作る(PHP 5.3以上の話) – sawara.me
  • 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
  • Code Life

    noto's blog

  • WordPressとオブジェクト指向プログラミング

    WordPressプラグインのOOPな雛形はあるけど、テーマのOOPな雛形って?」とググってみると、英文記事『WP+You+OOP(WP+You+オブジェクト指向プログラミング)』に辿り着いたので、和訳してみた。 現在のWordPressのバージョンに比べると、少し古いのをターゲットにしてるみたいだけど、最新版に読み替えても支障ない…と思う。 また、和訳した人は「SubVersion」使ってないし、「Sunrise」「Must Use」も使ってないんで、その辺りは、まぁ、ごにょごにょ、と…。 WPに関連付けられてるプログラミングの多くは、質的にオブジェクト指向ではない。 開発者が自身のブログ向けに書いたテーマモジュールやプラグインの殆どは、その場でのワンオフ関数だったり、コールバック関数に関連付けられてるフィルターやアクションの小さなセットである。 WPが“アプリケーション・フレーム

    WordPressとオブジェクト指向プログラミング
  • 1