オブジェクト指向の中身をキーワード別に分けると
カプセル化
使い手に関係のないものは見せない- C#の場合は、使い手に関係のないものは見せない
- JavaScriptやPythonのように、情報隠蔽できないオブジェクト指向言語もある
見せた場合
- 変更してほしくない部分を変更させる可能性がある
- 使って欲しい操作を読み取ってもらうのに時間がかかる
例 ) テレビ
- テレビをそうする時にわざわざテレビの中に入っている回路はいじらせない
- なぜか?回路いじってたら動かなくなったなんて言われたらたまったもんじゃない
- テレビを見たい人はチャンネル、音量、電源のオンオフができれば満足
- 無駄な情報はない方がいい
継承
- 元になるクラスのメンバーを引き継ぎながら新たな機能を追加、修正、上書きする仕組み
継承をしないと
- 似たようなものを作りたいけど、細部は違うようなものを作りたくなった場合に1から作る必要が出てくる
- コピペの嵐
例 ) 車のオプション
-
カーナビが付いていない車にカーナビを付けて欲しいと言われて、その車を1から作り直すことはない
- 元から完成している車にカーナビを外付けする
汎用的なベースになる車(一般人用)のようなものを作っておいて、特殊な機能が必要になった時に後付けしたり部品をバージョンアップしたりする
ポリモーフィズム
- 難しいので別記事で
終わりに
改めて記事にしてみると、理解度の足りなさが露呈してしまいました。
何か、認識が間違っていましたら、ご指摘いただけると嬉しいです!