タグ

singletonに関するincepのブックマーク (5)

  • Python でシングルトンパターンを実装する – ビットログ

    生成されるクラスインスタンスを常に一つにするシングルトンパターンを Python で実装します。 PythonJava みたいに “private static” みたいな修飾ができないし、どこで初期化すればいいのかもちょっと考える必要があります。 まずダメなパターンから。 class Sandwich: singleton = Sandwich() # これは NameError: name 'Sandwich' is not defined で失敗する。 Python ではこのスコープでインスタンスを生成しようとすると「クラスが定義されていない」として失敗します。 では __init__() メソッドはでしょうか。このアイデアもダメです。なぜなら __init__() メソッドの引数に渡される self はインスタンスですよね。 __init__() メソッドがコールされた時点で

  • MSC07-J. シングルトンオブジェクトのインスタンスを複数作らない

    シングルトンデザインパターンの目的について、Gamma その他による著作では、以下のように簡潔に説明されている[Gamma 1995]。 あるクラスに対してインスタンスが1つしか存在しないことを保証し、それにアクセスするためのグローバルな方法を提供する。 シングルトンクラスはひとつしか存在しないので、「シングルトンのインスタンスフィールドは、static フィールドと同様、ひとつのクラスに一回だけ生成される。シングルトンは、データベース接続やソケットなどのようなリソースへのアクセスを管理するためによく使われる」[Fox 2001]。他の使用例としては、性能統計データの管理、システムの監視と記録、プリンタスプーラの実装、オーディオファイルが複数同時に再生されないようにする、などがある。static メソッドのみを含むクラスはシングルトンパターンの有力な候補である。 典型的なシングルトンパター

    MSC07-J. シングルトンオブジェクトのインスタンスを複数作らない
  • 【C#】staticクラスとシングルトン考察 - PG日誌

    C# には言語固有機能として static クラスという機能があります。クラス自体を static と宣言することで、インスタンス作成を禁止し、static 宣言したクラスのインスタンスが複数作成できないようにできます。ですがこの機能、デザインパターンにあるシングルトンと何か違うのでしょうか?ちょっと考察してみました。 まずは、static クラスと Singleton 各々が C# 言語上でどういう風に表現されるか見ていきたいと思います。 staticクラスの宣言 static クラスの宣言方法は簡単で、クラスの前に static を付けます。 // 宣言に「static」を追加 public static class GlobalDataByStaticClass ... こうすることによってこのクラスの新規作成、インスタンスメンバーの保持を禁止することができます。 public st

    【C#】staticクラスとシングルトン考察 - PG日誌
    incep
    incep 2018/07/10
    "staticクラスの場合、ほぼ一瞬で実装が完了するので大変軽いのですが、C言語時代にあったグローバル変数と同じで、派生クラスによる差し替えもできないため実装がシングルトンに比べ固くなります。"
  • シングルトンパターンの誘惑に負けない | プログラマが知るべき97のこと

    シングルトンパターンの誘惑に負けない著者: Sam Saariste シングルトン(Singleton)パターンは多くの問題の解決に役立つパターンです。このパターンでは、クラスのインスタンスは必ず1つしか生成されません。そのインスタンスは使用前に必ず初期化されます。そしてシングルトンをグローバルアクセスポイントとすることで、設計をシンプルにできます。こう書いていくと良いことずくめのようですが、この「古典的な」デザインパターンに何か短所はあるのでしょうか 実はたくさんあります。それはよく考えてみるとわかります。確かにシングルトンパターンは魅力的なのですが、私の経験では、このパターンには利点よりも弊害の方が多いと言えます。まずテストの妨げになります。そして保守性の点でも不利です。残念ながらその事実は広く知られているとは言えないため、多くのプログラマを窓きつけているのです。つい使いたい誘惑にから

    シングルトンパターンの誘惑に負けない | プログラマが知るべき97のこと
    incep
    incep 2018/07/10
    "「必要なインスタンスは1つだけ」という要望は、多くの場合推測にすぎない。", "理論的には独立しているはずのコード間に暗黙の依存関係を生んでしまう。"
  • 【JSでデザインパターン】シングルトン編 - Qiita

    はじめに 記事は、『JavaScriptパターン』(O'Reilly)の第七章を読んで、JavaScriptでいろいろなデザインパターンを試してみようと思い書いた記事です。なお、各記事が長くなりそうなので分割しました。 リンク一覧 【まとめ】JavaScriptでデザインパターン 【JSでデザインパターン】シングルトン編 【JSでデザインパターン】ファクトリ編 【JSでデザインパターン】イテレータ編 【JSでデザインパターン】デコレータ編 【JSでデザインパターン】ストラテジー編 【JSでデザインパターン】ファサード編 【JSでデザインパターン】プロキシ編 【JSでデザインパターン】メディエータ編 【JSでデザインパターン】オブザーバ編 Singleten Singletenとは? Javaのようなオブジェクト指向プログラミング言語では、静的と動的なプロパティ、メソッドが入り組んでいるた

    【JSでデザインパターン】シングルトン編 - Qiita
    incep
    incep 2018/07/10
    “// 地球の寿命は47億年”
  • 1