オブジェクト指向はJava、JavaScript、PHP、Python、Rubyなどなど
色んな言語で使われているパラダイム(考え方)です。
上から順に追っていくだけ(手続き型)ではわからない仕組みになっていることがあり、理解するまでには時間がかかる代物ですよね。
ということで、当記事を読んで頂ければ解決の一助になるはずです。
基本概念
オブジェクト指向はSmalltalkという言語が発祥です。
オブジェクト指向の基本概念をすごく簡単に言うと、
「データと処理を一つにまとめたもの」です。
クラスの基本構成はフィールド(データ)とメソッド(処理)であることからもわかると思います。
なので、処理したい粒度でデータと処理が記述されているものだということがわかればそれでOKです。
小難しい実装はやっていればわかるようになるし、できるようになります。
デザインパターン
オブジェクト指向を理解したかったら、デザインパターンを何個か実際にコーディングしてみるのが一番です。
特にStateパターン、Compositeパターンあたりを何個か書いてみると「ほう、こういうことだったのか~」という感じになります。
1回じゃ多分わからないと思いますよ?
2~3個くらい似たいようなものを書いてみて、見比べてみて、なんでそう動くのかを自分で確かめてみるという工程があって初めて理解できます。
オワコンか?
う~ん、オブジェクト指向を使うべきかどうかはケースバイケースだと思うので、オワコンな環境ではオワコンなんじゃないでしょうかね(笑
Javaにも関数型のパラダイムが表れてきていますし(Stream)、別に無理にオブジェクト指向っぽく書かないといけないということもないと思います。
元々はデータと処理をひとまとめにしておくというのが基本的な考え方なので、内部の処理方法の細かい部分まで神経質にこだわるほどのものでもないです。
オブジェクト指向で書いた方がよい場面であればそのように実装すればいい、というくらいに考えて置く方が柔軟に対応できて生産性も高まるはずです。
なぜ必要か?
クラス単位で分けていると保守しやすいし、影響範囲をそのクラスに限定できるのでバグが混入しづらくなります。
というのが基本的な見解です。
「なぜ必要か?」
ということについてあまり深く気にする必要はありません。
本当に必要になった時になぜ必要なのかはわかるようになっていますので、今は深く気にせずに、今できる成長に注力しましょう。
おすすめの書籍はありますか?
オブジェクト指向の学び方、習得のヒント、苦手克服方法まで書かれています。
長いプログラムを書けない人、読めない人へのアドバイスもあるので、オブジェクト指向は難しいなぁと思っている方の悩みを解決する1冊です。
まとめ
- オブジェクト指向とは要するに「データと処理を一つにまとめたもの」
- 理解したかったらデザインパターンを何個か書いてみる。
- オワコンかどうかはその人、その環境次第
- <必要な時になったら本当に必要な理由はわかるようになっている。/li>
- 使えるようになりたいならこの1冊