オブジェクト指向プログラミングの本質は
「開放閉鎖原則」にあり
羽生田栄一さんの「オブジェクト論」は、オブジェクト指向の長所が非常によくまとめられている。
その中の一節で目を引くのが、「開放閉鎖原則」。
ソフトウェア工学的に妥当なモジュールのデザイン原理に対するオブジェクト指向からの回答が「開放閉鎖原則」である、と主張し、
・ほとんどのデザイン・パターンはこの原則から導出できる。
・この原理は、オブジェクト指向では個々のデータやアルゴリズムよりもインタフェースが重要であると意味する。
という特徴を示している。
「開放閉鎖原則」(The Open-Closed Principle) が説明されている本は、「プログラマのためのJava設計ベストプラクティス」しか見当たらない。僕の理解では、「モジュールは拡張に対して開いて (Open) おり,修正に対して閉じて (Closed) いなければならない」と認識している。
この原則は元々、メイヤーが言い出したらしい。
この原理は、オブジェクト指向だろうが構造化であろうが、どんなプログラムにも通用するが、オブジェクト指向でより明確に意識され始めたのではなかろうか?
この原理を生かすには、変更の多い箇所は抽象クラスとし、変化はサブクラスで対応することになる。
鍵となるのは、オブジェクト指向特有のデザインパターンであるFactoryMethodとObserver。ダイコンは、このパターンを意識せずにポリモルフィズムを実現させているような気がしてならない。
| 固定リンク
「日記・コラム・つぶやき」カテゴリの記事
- 考えながら書く人のためのScrivener入門の感想(2020.12.06)
- 課題は問題点をひっくり返す表現だけで良い場合もある(2020.09.28)
- ツールを使いこなせる事の重要性が増している(2020.05.28)
- ココログHTTPS化のメモ(2019.12.26)
- 「小水力発電が地域を救う」の感想(2018.04.06)
「プログラミング」カテゴリの記事
- Ruby技術者認定試験の感想(2020.05.08)
- 前処理大全の良いところ~SQLとRとPythonで対比できる(2019.07.10)
- WinSCPでトンネリングする方法のリンク(2018.09.09)
- 仕様書にもExcel脱却が求められている(2017.12.23)
- ソフトウェアの複雑性は本質的な性質であって偶有的なものではない(2017.05.05)
コメント