タグ

デザインパターンに関するyou21979のブックマーク (13)

  • Template Method パターン - Wikipedia

    Template Method パターン(テンプレート・メソッド・パターン)とは、GoF (Gang of Four; 4人組) によって定義されたデザインパターンの1つである。「振る舞いに関するパターン」に属する。Template Method パターンの目的は、ある処理のおおまかなアルゴリズムをあらかじめ決めておいて、そのアルゴリズムの具体的な設計をサブクラスに任せることである。そのため、システムのフレームワークを構築するための手段としてよく活用される。 以下に Template Method パターンのクラス図を挙げる。 AbstractClass は、public で宣言された templateMethod() と protected で宣言されたいくつかの抽象メソッドを持つ。ConcreteClass は AbstractClass を継承し、AbstractClass で定義さ

    Template Method パターン - Wikipedia
  • Advanced Go Concurrency 3 つのパターン - Block Rockin’ Codes

    intro ちょっと時間が経ってしまいましたが、 Go研 vol.03 では、 Google I/O 2013 で行われてた Go のセッションの 1 つである下記をテーマに研究しました。 Advanced Go Concurrency Patterns 資料は以下です。 https://github.com/goken/goken/blob/master/goken03/goken03.md また、ここから順に実装しながら解説をしますが、その完成品はこちらにあります。 (commit 履歴も、記事にある程度沿っています。) https://gist.github.com/Jxck/5831269 スライドにそってやったのですが、セッションの内容は結構重ためだったので、 2 時間の Go 研だとちょっと消化不良ぎみだったのが反省点です。 そこで、このセッションの要である、並行処理に関する

    Advanced Go Concurrency 3 つのパターン - Block Rockin’ Codes
  • hanabi.md

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    hanabi.md
    you21979
    you21979 2013/07/26
    命名規則違反のところよくやってしまう。でもイベントの名前つけるところ結構大変なのよ
  • デザインパターンの自動化

    .NETで簡単な例を見てみましょう。 public Person : INotifyPropertyChanged { string firstName, lastName; public event NotifyPropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) { if ( this.PropertyChanged != null ) { this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } public string FirstName { get { return this.firstName; } set { this.firstName

    デザインパターンの自動化
    you21979
    you21979 2013/04/10
    自動化は必須だと思う。コンパイラがやってくれないならフレームワークでやるしかない。
  • アンチパターン - Wikipedia

    ソフトウェア開発におけるアンチパターン (英: anti-pattern) とは、必ず否定的な結果に導く、しかも一般的に良く見られる開発方式を記述する文献形式を言う[1]。その内容は、基的には、否定的な開発方式の一般的な形、主原因、症状、重症化した時の結果、そしてその対策の記述からなる[2]。 デザインパターンを補完・拡張する関係にあるもので、多くの開発者が繰り返すソフトウェア開発の錯誤を明確に定義することにより、開発や導入を阻害する一般的で再発性の高い障害要因の検知と克服を支援することが目的である[3][4]。 ある問題に対する、不適切な解決策を分類したものをアンチパターンと言う[5][6]。 アンチパターンという呼び方は、アンドリュー・ケーニッヒ(英語版)が1995年に作り出したもので[7]、後に書籍The patterns handbook[8]で再掲された。 ギャング・オブ・フォ

  • Abstract Factoryパターン と Builderパターンの違い

    GoFデザインパターンはなかなか奥深く、入門書を読んでパターンごとのクラスの絡み合いを理解しただけでは 真価を理解できないことが多々あります。 独習デザインパターン のクラス図からAbstract Factoryパターン と Builderパターンの違いがうまく説明できなかったので GoFを紐解いて その目的を調べてみました。 Abstract Factoryパターンの適用可能性 Abstract Factoryでは、「ある抽象的な型の実装を返す」というインターフェースを定義し、 そのインターフェースの実装を多種揃えるといった形になります。 GoFでは例としてlook&feelを取り上げています。 JavaのswingのライブラリではUIのデザインをごっそり切り替えることができますが、 その具象クラスの生成を具象型を知らずに行いたいというようなケースを想定すればよいのでしょう。 GoF

  • 状態管理用の変数をインスタンスに持たせるなこのタコって話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

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

    状態管理用の変数をインスタンスに持たせるなこのタコって話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き) - 主に言語とシステム開発に関して

    GoFデザインパターンの一覧表と,活用のためのコメント,および入門者が独学するためのリンク集(サンプルコード付き)。 入門者の独学を支援するために,このページのURLを提示して熟読させ,各パターンを短時間で効率よく学んでもらう。 デザインパターンはプログラマの常識だ。 Java使いかどうかは問わない。 にも関わらず,入門書を買ったまま,途中で挫折する人が多い。 挫折の原因は,パターンの数が23もあって,多いからだろう。 全パターンをすんなり覚えてもらうためには,各パターンごとに 「要するにこういう目的のパターンなんだ。」 「10文字で表現すると,パターンの意味はこうなんだ。」 という要点・質を,短いコメントで伝えれば助けになるだろう。 こういった学習を通して,Java言語の「設計思想」も併せて感じ取ってゆけるはず。 全パターンの一覧表(要約コメント付き) 全パターンについて,10文字以内

    GoFの23のデザインパターンを,Javaで活用するための一覧表 (パターンごとの要約コメント付き) - 主に言語とシステム開発に関して
  • ギコ猫とデザインパターン

    /‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ ワーイ スレッドヘン 1ゲト ズザー! \ ‾‾‾‾‾‾|/‾‾‾‾‾‾‾‾‾‾‾ (   Λ_Λ ⊂ ´⌒つ゜ー゜)つ ‾‾‾‾‾‾‾ .___________ |               ..| | ギコ暗号入門はこちら .| |___________| ∧,,∧ || ⊂ミ.,,゜Д゜彡つ https://www.hyuki.com/cr/cat_index.html 目次 はじめに 登場するたち ギコGoFのパターンたち ギコとマルチスレッドのパターンたち アニメGIF みなさんからのフィードバック ぜひ、感想をお送りください このページにリンクしてくださっている方々 リンク集 更新履歴 はじめに このページでは2ch.netのキャラクタ「ギコ」にナビゲートしてもらい、 デザインパターンをいくつか紹介(?)します。 といっても

  • 6. Prototype パターン

    6.1 Prototype パターンとは 第6章では Prototype パターンを学びます。prototype という単語は、日語で「試作品」「原型」といった意味を持ちます。Prototype パターンは、あらかじめ用意しておいた「原型」からインスタンスを生成するようにするためのパターンです。 例えば、「直線を描く」機能しか持たない図形エディターを想像してみましょう。この図形エディターで星型を書きたいときには、直線を組み合わせることで、星の形を作成していくことになります。では、星型がいくつも欲しいときはどうすればよいでしょう?直線を組み合わせて星型を描くという作業を何度も繰り返す必要が出てきます。こんなとき、最初に作成した星型(直線の集まり)を「プロトタイプ」として登録しておき、これをコピーすることで星型が作成できれば、作業がとても楽になります。 Prototype パターンは、このよ

  • http://blog.ezyang.com/2010/05/design-patterns-in-haskel/

  • オブジェクト指向におけるデザインパターン

    HOME Last modified: 2014-01-17 ここでは Pree の著書の論旨に基づきつつ、他の文献からの引用をおりまぜて、 「デザインパターン」の意義と概略を整理してみたいと思います。 あくまでも私の解釈と経験に基づく理解なので、誤りや説明不足はご容赦ください。 オリジナルの文献を手に取るきっかけとなれば幸いです。 文献 特集「デザインパターンとオブジェクト指向設計」 月刊ドクター・ドブズ・ジャーナル日版, 1997年10月号. Design Patterns Elements of Reusable Object-Oriented Software, by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Addison-Wesley Professional Computing Series,

  • Observer パターン - Wikipedia

    この記事には複数の問題があります。改善やノートページでの議論にご協力ください。 出典がまったく示されていないか不十分です。内容に関する文献や情報源が必要です。(2015年10月) 脚注による出典や参考文献の参照が不十分です。脚注を追加してください。(2021年8月) 出典検索?: "Observer パターン" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL この記事内にあるすべての画像は、ベクターイメージである SVG ファイルとして再作成されるべきです。これにはいくつかの利点があります。詳しくはWikipedia:SVGへの乗り換えを参照してください。この画像の SVG 形式がすでに利用可能である場合は、アップロードしてください。アップロード後、この画像にあるこのテンプレートを{{SVG版利用可能

    Observer パターン - Wikipedia
  • 1