オブジェクト指向について整理したいと思ったのでアウトプットします。
オブジェクト指向とは?
A.「ある役割を持ったモノ」ごとにクラス(プログラム全体の設計図)を分割し、モノとモノとの関係性を定義していくことでシステムを作り上げようとするシステム構成の考え方のこと。
そもそもオブジェクトとは何なのか?
(わかりやすい記事があったので自分なりに解説)
A.ざっくりでいうと「モノ」
プログラミング視点で考えてみる。
例えばケータイでいうと、
オブジェクト:ケータイ
クラス:スマートフォン
インスタンス:iPhoneやAndroid
こんな感じで考えるとわかりやすいと思った。
オブジェクト指向のメリット
①効率よくプログラムを設計・開発できる
例、サイト制作などで色違いのボタンを5つ作るとします。
オブジェクト指向を使用しない場合は5つ全てにプログラムを実装しなければならない。
しかしオブジェクト指向を使用すれば1つのボタンの「モノ」として作成し設定してしまえば、
色を変えたり、文字を変えたりするだけで済む。
②不具合の原因を特定しやすくなる
オブジェクト指向でないコードだとどこで何がどのようなエラーが起こっているのか、
探すのが困難である。
しかしオブジェクト指向のコードで記述していれば「モノ、データ」と「操作、処理」で分かれた形で記述されているのでどこでエラーが起こったのかわかりやすい。
③プログラムの仕様が変わっても簡単に対応できる
先ほどの①のボタンの例でいうとボタン部分を全て大きくしたい時に、オブジェクト指向でないと全てのボタンを修正しなければならない。税金なども改正されることが多いのでオブジェクト指向であれば1部分を変更することで全てに適用されるので急な仕様変更に対応できる。
オブジェクト指向のデメリット
・データと処理をひとまとめにした「継承」という仕組みによってどこのコードが実行されているのかわかりにくい。
・設計の工程に時間がかかる。
・実際再利用するとなった場合、非常に難易度が高い。
オブジェクト指向の代表的なプログラミング言語
・Ruby
・Python
・C++
感じたこと
改めて文字に起こすことでオブジェクト指向の理解を深めることができた。
ただ単にコードを記述するのではなくオブジェクト指向のメリットを理解した上でコーディングしていきたいと思った。
基本的なことだが非常に重要なことだと思うので復習を繰り返し行い、完璧にインプットしたい。