0. クラス原則

前回のJ2EE勉強会で、ひがさんから「DIの本質」として発表された中にでてきたOpen Closed Principle(OCP)。
以前から、「オブジェクト指向入門 (ASCII SOFTWARE SCIENCE Programming Paradigm)」で読んだりして言葉は知っている状態だったけど、正直どういう意味なのかはよくわかってません。
で、

プログラマのためのJava設計ベストプラクティス

プログラマのためのJava設計ベストプラクティス

  • 作者: カーククネンシルト,Kirk Knoernschild,長瀬嘉秀,今野睦,テクノロジックアート
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2002/12
  • メディア: 単行本
  • クリック: 16回
  • この商品を含むブログ (3件) を見る
の第1章に、OCPを中心としたオブジェクト指向設計の原則が説明されているので、これを参考にちょっとまとめてみます。
登場する原則は以下のとおり。

  1. 閉鎖/開放原則 (Open Closed Principle:OCP)
  2. Liskovの置換原則 (Liskov Sustitution Principle:LSP)
  3. 依存関係反転原則 (Dependency Inversion Principle:DIP
  4. インターフェイス分離原則 (Interface Segregation Principle:ISP
  5. コンポジット再利用原則 (Composite Reuse Principle:CRP
  6. 最小知識原則 (Principle of Least Knowledge:PLK) aka デルメルの法則 (the Low of Demeter)

順番に見ていくことにします。