タグ

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

  • Null Object as identity

  • 20.Flyweight パターン

    2012/04/26 一部修正しました デザインパターン 20章 Flyweightパターン 20.1 Flyweightパターンとは 20.2 サンプルケース 20.3 Flyweightパターンまとめ 20.1 Flyweight パターンとは 第20章では Flyweight パターンを学びます。Flyweight とは、英語で「フライ級」を意味する単語です。 フライ級とは、ボクシングなどの体重階級の中でもっとも軽い部類に分類できる階級です。もっと軽い階級もありますが。 Flyweight パターンとは、インスタンスを共有することでリソースを無駄なく使うことに焦点を当てたパターンです。 例えば、ホームページの背景に使う小さな画像は、背景で表示される回数分ネットワークごしにやり取りされるわけではありません。 普通は、画像を一回取得し、「その画像」を並べて表示するわけです。 Flywei

    igrep
    igrep 2018/02/26
    ああー、RubyのFacetsでMultitonって呼んでたやつのことか!
  • DCI (data context interaction)

    DCI アーキテクチャという設計についての考え方がある。数年前から scala 界隈で盛り上がっていた記憶があるが、最近は ruby/rails 界隈でも盛り上がっている模様。 先日の札幌 ruby 会議で角谷氏が発表を行っている。 rubykaigi  http://sapporo.rubykaigi.org/2012/ja/schedule/details/79.html スライド    http://kakutani.com/20120916.html#p01 そこからたどって以下のような資料があるのも発見した。 objects on rails (書籍の無料公開) http://objectsonrails.com/ Clean Ruby http://clean-ruby.com/ 書籍サイト。ベータ版書籍が購入可能。$42なので電子書籍にしてはかなり高い。 DCIの講演 tog

    igrep
    igrep 2015/01/20
    roleに追い出す: 特定の場面でしか使わない。model(data?)に残す: よく使うビジネスロジックを表現したscopeとか
  • Android開発を始めたばかりの僕が読みたかった本 - Just posted a blog

    最近、スマートフォンアプリ開発をやる人増えてきてオススメのある?って聞かれること多くなってきたのですが、その人のバックグラウンドによるところも大きいと思うので、自分がAndroidアプリ開発を始めたときに読んでて役に立った、あるいは読んでおきたかったという目線で、良かったをいくつか挙げようと思います。 Effective Java Java界隈では多くの人が読んでいると思いますが、AndroidからJavaに入った人だと読んだことがない人もいると思います。 Javaを書く上でのエッセンスが詰め込まれているので、まだ読んでいない方は読むことをおすすめします。 JUnit実践入門 Androidだとテストが書かれないことが多いです。しかし、書いた方がデバッグの時間が短くなる上に保守もしやすくなりますし、テストを書きやすい構造を意識するようになって、上達が早くなりますし、設計も綺麗になります

  • ジェネリクスによるVisitorパターン拡張の考察 - プログラマーの脳みそ

    先日twitterで "Expression Problem" という問題を知った。 静的な型付けの下で、場合分けのデータ構造に対して、新しい場合分けとその場合に対する新しい処理を、元のソースコードに手を加えることなく拡張定義すること 2009-05-16 この問題が意図するところを語るにはまずオブジェクト指向から流れを辿らねばなるまい。 オブジェクト指向のポリモーフィズム Javaのようなオブジェクト指向の言語で、ある特定のメソッドがあることを抽象クラスHogeで保証するとしよう。 public interface Hoge { void hoge(); } このとき、機能性、つまりメソッドというのは増えることがない固定のものだが、継承して実装されたクラスというのは自由に増やすことができる。そして、抽象型Hogeを扱っている既存コードは修正する必要がない。 これはいわゆる開放/閉鎖原則(

    ジェネリクスによるVisitorパターン拡張の考察 - プログラマーの脳みそ
  • 状態管理用の変数をインスタンスに持たせるなこのタコって話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

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

    状態管理用の変数をインスタンスに持たせるなこのタコって話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    igrep
    igrep 2013/02/11
    べ、別にこれ読まなくても私ならやってると思うけど確認のためにブクマしただけなんだからね/// あ、あと、話それるけどRubyの慣習的にto_hoge_modeで破壊的変更しちゃうのはまずいと思うの
  • RAII - Wikipedia

    RAII(Resource Acquisition Is Initialization)は、日語では「リソース取得は初期化である」「リソースの確保は初期化時に」「リソースの取得と初期化」などの意味を持ち、資源(リソース)の確保と解放を、クラス型の変数の初期化と破棄処理に結び付けるというプログラミングのテクニックである。特にC++とD言語で一般的であり、デストラクタをサポートしないC言語などに対する優位性や利便性のうちのひとつとなっている。 RAIIでは、資源の取得をクラス型変数の構築(初期化)時に、また返却を破壊時に行う。特にプログラムの制御フローが自動変数の属するブロックを抜けるとき、その変数のデストラクタが自動的に呼ばれるため、デストラクタを適切に記述したクラス型変数の寿命が終わるとすぐに資源が返却されることが保証できるようになる。これは例外が発生したときでも同様であるため、RAII

  • Amazon.com: :

  • RubyのメタプログラミングでInterpreterパターンを実装しよう! - hp12c

    ブログを下記に移転しました。デザイン変更により移転先では記事が一層読みやすくなっていますので、よろしければ移動をお願い致します。 RubyのメタプログラミングでInterpreterパターンを実装しよう! : melborne.github.com - 「Rubyによるデザインパターン」(著:ラス・オルセン)は GoFの23あるデザインパターンのうちの14個について Rubyによる実装とその解説を試みた書籍です Rubyによるデザインパターン 作者: Russ Olsen,ラス・オルセン,小林健一,菅野裕,吉野雅人,山岸夢人,小島努出版社/メーカー: ピアソン桐原発売日: 2009/04/01メディア: 単行購入: 13人 クリック: 220回この商品を含むブログ (66件) を見る Interpreterパターン その中にInterpreterパターンを取り扱った章(15)があります

    RubyのメタプログラミングでInterpreterパターンを実装しよう! - hp12c
  • 1