タグ

2006年5月19日のブックマーク (3件)

  • Open-Closed Principle とデザインパターン

    1999/09/03 更新 石井 勝 さて,このセクションではデザインパターンを統一的に理解するために,「 Open-Closed Principle (OCP) 」 という設計ルールに基づいてパターンを眺めてみることにします.まず OCP の意味と解説を行い,その後デザインパターンを OCP の観点から見てみます.実は,デザインパターンのうちの多くは OCP を満たすために用意されたものと考えることができるのです.このセクションでは, OCP を理解し,数あるデザインパターンの中からどういう場合にどのパターンを使うのが一番効果的なのかを考えます. GoF のデザインパターンは,全部で 23 個ものパターンがあります.このデザインパターンは,多くの局面で繰り返し現れる設計を抽出したものですから,オブジェクト指向のエッセンスを集めたものだと言えるでしょう.オブジェクト指向には,カプセル化

  • デザインパターンを読み解く

    ポリモーフィズム(サブクラスによる切り替え、抽象化) ここに分類されるのは、オブジェクト指向の第3原則、ポリモーフィズムを使用したパターンです。ポリモーフィズムを使用すると、動的に使用するクラスを切り替えることができます。<参照> 他に分類されているものでも、ポリモーフィズムが重要な位置を占めているものもありますが、ここではそれしか使われていないものを扱います。 ただデザインパターン全体を通して強調されているのは、インターフェースでプログラミングするということです。実装への依存をなくし、そうすることによって設計の骨組みを明らかにするのです。 Template 次のようなメソッドがあった場合に、処理Bのところを条件によって変えたい場合があるとします。 class Hogehoge { void doit() { ... 処理A ... ... 処理B ... ... 処理C ... } }

  • デザインパターン:Observer

    1.Observer パターン オブジェクトが変更されたことを関連するオブジェクトに自動的に通知する。 1.1.構成クラス ○Subject クラス 役割: 通知対象の管理用インタフェースを宣言するクラス 通知対象を参照するリストをもつ。 協調関係: Observerを参照する。 ○ConcreteSubject クラス 役割: 具体的なSubjectを定義する。 状態を保持するインタフェースを定義する。 協調関係: Subject を継承する。 ConcreteObserverから参照される。 ○Observer クラス 役割: 更新インタフェースを宣言するクラス Subjectからの通知を受け取る。 協調関係: Subjectから参照される。 ○ConcreteObserver クラス 役割: 具体的な Observer を定義する。