読者です 読者をやめる 読者になる 読者になる

MogLog

メモというか日記というか備忘録というか

デザインパターン

『Rubyによるデザインパターン』学習ノート:Composite

Compositeパターン 全体から部分を組立てるオブジェクト指向でソフトウェアを作ることは、シンプルなオブジェクトを組み合わせて、より複雑なオブジェクトを作るプロセスにほかならない。そうしてできたオブジェクトはより高度なオブジェクトを構築するため…

『Rubyによるデザインパターン』学習ノート:Observer

Observerパターンとは、何らかのオブジェクトが変化したというニュースの発信者と受信者の間に綺麗なインタフェースを作るパターンのこと。 ニュースを持っているクラスをサブジェクトクラスと呼び、ニュースの受信者をオブザーバーと呼ぶ。システムを構築す…

『Rubyによるデザインパターン』学習ノート:Strategy

template methodには欠点があり、そのほとんどが、「継承」の上に成り立つ手法であるということ。それについては、前回のエントリで簡単にまとめた前々回のエントリで書いたコードの場合を考えてみよう。Reportというクラスを基底に、HTMLReportやPlainTextR…

『Rubyによるデザインパターン』学習ノート:「継承より集約」「委譲、委譲、委譲」

■継承より集約 # 継承のごく簡単なサンプル class Vehicle # 乗り物に関するたくさんのコード... def start_engine # エンジンスタート end def stop_engine # エンジンストップ end end class Car < Vehicle def sunday_drive start_engine # 地方に出かけ…

『Rubyによるデザインパターン』学習ノート:Template Method

Template Method アルゴリズムに多様性を持たせたい場合に役に立つ。 基底クラスには、不変の部分を記述し、変わる部分はサブラクスに定義するメソッドにカプセル化する。 基底クラスは、メソッドを未定義にしておくことができる。ただしその場合は、サブク…