長い間プログラミングはしていないが、ソフトウエア業界
にいるかぎり、ソフトウエアの技術動向には関心を持た
ざるを得ない。
その中で、「オブジェクト指向」は、重要なキーワードで
あり、いろんな本を読んでみたが、「モノ中心」で汎用的に
物事を捉える方法論と概念的には理解できたが、それと
実際のプログラミングとどう繋がるのかが分からなかった。
この本は、オブジェクト指向はソフトウエアを楽に作る
技術であり、プログラミングの仕組みと明確に整理し、
「モノ中心」で汎用的に物事を捕らえる考え方とは別物で
あると明快に説明した書籍である。。
まず、プログラミングの歴史をアセンブラ、高級言語、
構造化プログラミングと振り返り、プログラミング技術
は以下のことを狙いに発展してきたと説く。
・命令を簡単に表現する⇒生産性向上
・プログラムを分かりやすく⇒保守性向上
・制約をつけて複雑さを避ける⇒品質向上
・重複ロジックを排除して、
部品化と再利用を促進⇒ 再利用
構造化プログラミングでは、
・基本3構造(順次進行、条件分岐、繰り返し)
・GOTOレスプログラミング
・サブルーチンの独立性強化
を行ってきたが、まだ不十分である。
これらを克服するために、オブジェクト指向プログラミング
が登場したと言う。
OOP(0bejct Oriented Programming)にはグローバル変数
を使わずに済ませる仕組みが備わっており、共通サブルーチン
以外の再利用を可能にする仕組みが備わっている。
それらは、「クラス」、「ポリモーフィズム」、「継承」である。
1.「クラス」は「まとめて、隠して、たくさん作る」仕組み。
(1) サブルーチンと変数を「まとめる」
(2) クラスの内部だけで使う変数やサブルーチンを「隠す」
(3) ひとつのクラスからインスタンスを「たくさん作る」
2.「ポリモーフィズム」
サブルーチンを呼び出す側のロジックを一本化する仕組み
すなわち「共通メインルーチン」を作る仕組み。
共通サブルーチンは、呼び出される側のロジックを一本化
するがポリモーフィズムは反対に呼び出す側のロジックを
一本化
3.「継承」
似たもの同士のクラスの共通点と相違点を整理する仕組み
重複するクラス定義を共通化し、別クラスにまとめる仕組み。
変数とメソッドをまとめた共通クラスを作り、別のクラス
からその定義を丸ごと拝借する。
継承を使う場合、共通につかいたいメソッドとインスタンス変数は
共通クラスに定義し、利用したいクラスはその共通クラスを
「継承する こと」と宣言する。
共通クラスのことをスーパクラスと呼び、それを利用するクラスを
サブクラスと呼ぶ。
以上簡潔だがオブジェクト指向のエッセンスを理解することができた。
0 件のコメント:
コメントを投稿