タグ

Design Patternに関するbabydaemonsのブックマーク (11)

  • 19.State パターン

    19.1 State パターンとは 第19章では State パターンを学びます。State とは、英語で「状態」を意味する単語です。 オブジェクト指向設計では、モノをクラスとして表現することが多くあります。State パターンとは、 モノではなく、「状態」をクラスとして表現するパターンです。 状態によって、動作のパターンが変わることがよくあります。 例えば、「機嫌のいい状態」「機嫌が悪い状態」の2つの状態があるお母さんにいくつか頼みごとをすることを考えます。 機嫌のいい状態のお母さんに「お小遣い頂戴」「おやつ頂戴」などのお願いをした場合、 「はいはい」といってお小遣いをくれたり、おやつを出してくれたりするでしょう。 しかし、機嫌の悪い状態のお母さんにこれらのお願いをしても聞き入れてくれないかもしれません。 お母さんは状態によって、振る舞いが変わるわけです。 State パターンとは、この

    babydaemons
    babydaemons 2016/12/23
    あーあ、Stateパターンで作るべきだったなー。お客さんの慣例を打ち破って。製造をお願いした人が直すのがめんどいバグを作りこんでる。orz
  • シングルトンを使うのはやめよう - ぷろみん

    概要 この記事はC++の作者Bjarne Stroustrup等によって書かれたコーディングガイドラインのAvoid singletonsの箇所の翻訳です。 https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Ri-singleton シングルトンを使うのはやめよう 理由 シングルトンは基的に変装したグローバルオブジェクトに過ぎないため。 例 class Singleton { // シングルトンオブジェクトが確実に1つだけ作られて // プロパティの初期化が行われるようにする }; シングルトンという発想には多くの亜種がある。 それが問題の1つである。 メモ あなたがグローバルオブジェクトを変更したくない場合、constまたはconstexprを宣言する。 例外 最初の使用での初期化を

    シングルトンを使うのはやめよう - ぷろみん
    babydaemons
    babydaemons 2016/10/27
    超賛成!"シングルトンを使うのはやめよう 理由 シングルトンは基本的に変装したグローバルオブジェクトに過ぎないため"
  • 状態管理用の変数をインスタンスに持たせるなこのタコって話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    たとえば、今、「ユーザーが方向を入力したらプレイヤーが動くゲーム作りたい」みたいなはなしがあるとする。その場合、モデルクラスはまあシンプルな実装として下のようなものが考えられると思う。 「できたよー」って見せにいったら、今度は「あのさー、『高速移動モード』っていうモード欲しいんだよね。そのモードだと二倍速で動くの」って言われたとする。シンプルにやるとこうなりますね。 「できたよー」って見せにいったら、今度は「なあ、すげえ面白いこと考えたんだけど、『蟹モード』って面白くない?横は4倍速で動くんだけど縦は半分の速度で動くの」とか言われたわけです。あなたは「お、おう」と言って、以下のようにコードを修正しました。 これ、ヤバい感じしますね。破滅の匂いがする。「今度は『よっぱらいモード』欲しいな〜。入力に関係なくランダムに動くの」みたいなこと言われたら確実に複雑さが爆発してメンテ不能になりになり死

    状態管理用の変数をインスタンスに持たせるなこのタコって話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    babydaemons
    babydaemons 2013/02/12
    Stateパターンって、基本情報処理の午後の問題の必修にしてほしいわ。そしたら、日本の糞のようなデスマプロジェクトが幾分減る!
  • Java 暗号化拡張機能 JDK5.0

    babydaemons
    babydaemons 2011/06/02
    こっちが最新版
  • Java 暗号化拡張機能 JDK5.0

    babydaemons
    babydaemons 2011/06/02
    WikipediaのPrototypeデザインパターンのページを読む前に読んでおけってか。
  • 矢沢久雄の早わかりGoFデザインパターン(6)

    プログラムの動作を分析する際には、大きく分けて2つの視点があると思います。1つは「処理が流れて行く」という見方です。これを図に表すと、フローチャートになります。もう1つは「状態が変化して行く」という見方です。これを図に表すと、状態遷移図になります。これら2つの視点は、プログラムに置き換える対象に応じて自然と使い分けられるものです。 プログラムの状態と聞くと、ピンと来ないかもしれませんね。早い話が、データの値が様々に変化することです。オブジェクト指向プログラミングでは、フィールドの値がオブジェクトの状態です。オブジェクトは、現在の自分の状態に応じた振る舞いをします。場合によっては、状態が変化したことを、他のオブジェクトに通知することもあります。その際に、何か工夫をしたくてウズウズしてきませんか。 【お役立ち度】★★★★☆ ●if文を使わずに、状態に応じた処理を行えるStateパターン 3つの

    矢沢久雄の早わかりGoFデザインパターン(6)
    babydaemons
    babydaemons 2010/04/24
    Stateパターン/Observerパターン
  • 8. AbstractFactory パターン

    2012/04/26 一部修正しました デザインパターン 8章 AbstractFactory パターン 8.1 AbstractFactoryパターンとは 8.2 サンプルケース 8.3 AbstractFactory パターンのまとめ 8.1 AbstractFactoryパターンとは 第8章では、 AbstractFactory パターンを学びます。AbstractFactory を日語に直訳すると「抽象的な工場」となります。いったい抽象的な工場とは、どんな工場なのでしょう。AbstractFactory パターンとは、インスタンスの生成を専門に行うクラスを用意することで、整合性を必要とされる一連のオブジェクト群を間違いなく生成するためのパターンです。 例えば、「車」を作成するプログラムを考えてみてください。このプログラムのある部分で、「車」オブジェクトである変数 car にタイヤ

    babydaemons
    babydaemons 2010/04/06
    これ、最終形のソースコードが載ってないから、クラス図を見て脳内補間する必要があるぞw
  • 矢沢久雄の早わかりGoFデザインパターン(3)

    矢沢久雄の早わかりGoFデザインパターン(3) 第3回 Factory Methodパターン/Abstract Factoryパターン 今回紹介する2つのパターンの名前には、どちらも「Factory(工場)」という言葉が入っています。何を作る工場なんでしょう?「オブジェクト」を生成する工場です。オブジェクトは、クラスのコピーをメモリにロードしたものであり「クラスのインスタンス」とも呼ばれます。Javaでは、MyClass m = new MyClass(); という構文でオブジェクトを生成します。newという命令を使っていることから、オブジェクトを生成することを「newする(ニューする)」とも言います。 複数のプログラマが1つのシステムを構築する場合には「私はクラスを作る人、貴方はクラスを使う人」という役割分担ができます。クラスを使う人は、他の人が作ったクラスをnewするわけですが、ちょっ

    矢沢久雄の早わかりGoFデザインパターン(3)
  • デザインパターン編 トップページ●Programing Place

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • http://www.rarestyle.net/main/patterns/patterns.aspx

  • デザインパターン[モデリング] -TECHSCORE-

    オブジェクト指向プログラミングにおいてデザインパターンを利用することは、開発者に様々なメリットを与えてくれます。 ここでは、「デザインパターンとは何か」というようなデザインパターンの基事項と、GoFの23個のデザインパターンをJavaを利用してわかりやすく解説します。 デザインパターン INDEX

  • 1