近年,オブジェクト指向プログラミングが,もてはやされています.
しかし,本当に必要なのでしょうか?
C言語など手続き型言語で十分なように思ってしまいます。
オブジェクト指向が良いとされる理由として
「開発力が上がる」というのがあります.これは一度作ったモジュールを
再利用することができるからだと思われます.
(でもC言語でも関数を使いまわせるような気がします 疑問)
OOPが本当に必要なのかを理解するため,
その利点と,どのような場面で有効なのかを考えてみたいと
思います。
オブジェクト指向のキーワード
・カプセル化(情報隠蔽)
・抽象化(クラスとオブジェクト)
・階層的構造化(継承と集約)
・メッセージ
・ポリモーフィズム
構造の表記方法
UMLなど
具体的な言語
Javaなど
「カプセル化」
データとそれを処理する手続き これらをまとめてしまうのがカプセル化の
役割の一つ。
データは属性とも呼ばれる,オブジェクトの名前,所属など性質を表現する。
処理する手続きはメソッドとも呼ばれる。メソッドはデータへのアクセスや操作を
行なう。(例:所属の変更→名刺のアドレスを書き換える など)
カプセル化の役割。
オブジェクトのデータを直接外部からアクセスさせないようにします。
データを操作するときは,アクセスできるメソッドを経由してのみ授受できるものとします。
これにより,データの構造や内部の処理を外部から隠蔽します。(内部構造を詳しく知らなくても
モジュールを扱える!)
このため,オブジェクトはデータ構造の定義と,それらにアクセスするためのメソッドによって
構成されています。
クラスに関して参考サイト
http://www.aerith.net/design/class-j.html
PR