タグ

2018年7月10日のブックマーク (7件)

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

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

    MSC07-J. シングルトンオブジェクトのインスタンスを複数作らない
  • コーディング規約は美しいコードを生み出すか? | 今日から始めるリファクタリング

    完璧なコーディング規約を定めて、メンバー全員がその規約に忠実に従っていれば、プロジェクトのコードは無駄の無い美しいものになるでしょうか? 必ずしもそうとは言えません。むしろ、厳しすぎるコーディング規約は逆効果になってしまう場合もあります。 そもそも、コーディング規約は美しいコードを書くためのものではありません。 プロジェクトのメンバーというのは通常、経験年数も育ってきた環境も最初に覚えた言語もバラバラです。 そのような集団がそれぞれ自分の書きやすい書き方でコーディングを進めたら、同じプロジェクト内、下手をすると同じファイル内でも全然違う書き方が混在してしまいます。 コーディング規約というのは、メンバー間のコードの差異をできるだけ無くし、プロジェクト全体の統一感を出すために必要不可欠なものです。 キャメル記法を使う、メソッド名は動詞から始める、インデントは半角スペース4文字、etc… では、

    incep
    incep 2018/07/10
    "統一感が出ることで一定の美しさは得られますが、それ以上にはなりません。" 確かに.(この記事の「美しい」は「実行効率がよく見た目にも無駄がない」の意と解釈)
  • C#固有の構文はUMLでどう書けばいいのか? - PG日誌

    最終的な実装言語がC#で、設計を検討する場合、設計資料の作成にUMLを使うと表現が少々難しい事あります。Javaのコンテキストには無いC#固有の文を扱う時にどうやって書けばいいのかわからない構文がいくつかあるので表現方法をどうするか考えてみました。 プロパティ構文 setter/getter両方ともアクセス修飾子が同じ場合は簡単です。実際のコードで public string Str { get; set; } こんな風に表現したいなら以下のように<>ステレオタイプで指示すれば大体意味が通じます。 setter/getterでアクセスレベルが異なる場合、どうしようも無いのでオレオレ制約を記載します。意図するコードが public string Str { get; private set; } の時は、 上記のようにします。間違ってもJava風にsetter/getterを記述すると、作業

    C#固有の構文はUMLでどう書けばいいのか? - PG日誌
    incep
    incep 2018/07/10
  • 【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億年”
  • Overview of the Web

    incep
    incep 2018/07/10
    'There is no "top" to the World-Wide Web.'