オブジェクト指向プログラミングの本質は
「開放閉鎖原則」にあり
羽生田栄一さんの「オブジェクト論」は、オブジェクト指向の長所が非常によくまとめられている。
その中の一節で目を引くのが、「開放閉鎖原則」。
ソフトウェア工学的に妥当なモジュールのデザイン原理に対するオブジェクト指向からの回答が「開放閉鎖原則」である、と主張し、
・ほとんどのデザイン・パターンはこの原則から導出できる。
・この原理は、オブジェクト指向では個々のデータやアルゴリズムよりもインタフェースが重要であると意味する。
という特徴を示している。
「開放閉鎖原則」(The Open-Closed Principle) が説明されている本は、「プログラマのためのJava設計ベストプラクティス」しか見当たらない。僕の理解では、「モジュールは拡張に対して開いて (Open) おり,修正に対して閉じて (Closed) いなければならない」と認識している。
この原則は元々、メイヤーが言い出したらしい。
この原理は、オブジェクト指向だろうが構造化であろうが、どんなプログラムにも通用するが、オブジェクト指向でより明確に意識され始めたのではなかろうか?
この原理を生かすには、変更の多い箇所は抽象クラスとし、変化はサブクラスで対応することになる。
鍵となるのは、オブジェクト指向特有のデザインパターンであるFactoryMethodとObserver。ダイコンは、このパターンを意識せずにポリモルフィズムを実現させているような気がしてならない。
| 固定リンク
「日記・コラム・つぶやき」カテゴリの記事
- TwitterやFacebookは人力キュレーションツールとして使う(2022.10.02)
- 「現代病「集中できない」を知力に変える 読む力 最新スキル大全」の感想(2022.08.28)
- 人類は海辺から生まれた~水生類人猿説が面白い(2022.08.09)
- 戦前の日本人の気質はまだ成熟していない青年期と同じだった(2022.06.14)
- 物理学を攻略するためのマップ(2022.04.18)
「プログラミング」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのモジュールシステムは複雑性をより増している(2022.09.10)
- Javaはなぜ関数型言語になろうとしているのか(2022.09.02)
- Javaのラムダ式の考え方(2022.08.10)
- Javaはオブジェクト指向言語ではなく関数型言語だった~「[増補改訂]関数プログラミング実践入門」はお勧めの本だ(2022.08.06)
コメント