第3回「オブジェクト指向について書いてみたい」

更新日:

こんにちは。森川です。

何回かにわたってオブジェクト指向について書いてみたいと思う。
プログラマ、システム屋であればこのジャンルをきちんと理解しておきたいと思っている人は多いと思う。

ただ、このジャンルは本当に奥が深いし難しい。
挫折した人も多いのではないかと思う。
そういう意味でこの記事がオブジェクト指向を理解する一つのきっかけになれば幸いと思い、自分の経験をたどりながら書いていきたい。
私自身の不勉強さもあり、間違ったことを書くかもしれない。そのあたりは、こいつこの程度なんだと思いご愛嬌を。

私自身の記憶をたどってみると、オブジェクト指向を理解したいと思ったのが、かれこれ10年ぐらい前まだ会社員時代の頃かな。
誰もがそうだと思うのだけど、プログラマーとして仕事をしていると、動くシステムを作ることというのは、形をこだわらないのであればそんなに難しくなくなってくる。
特にフレームワークが当たり前の時代だと特にそうなんよね。
大してわかってなくてもフレームワークが補ってくれるから、なんとでもなるんよ。

当時感じていたのが、では職業としてやっているプログラマー(以下プロのプログラマーと記す)、システム屋が習得しないといけないことは何なのだろうか???
動くシステムを作るだけであれば、プロじゃなくてもおそらくできるよって。センスある人であればプロじゃないプログラマーさんでも、デザイナーさんでも頑張ればできるよって、感じてた。

そういうことをいろいろ考えていたときに、出会ったのがこのオブジェクト指向。
以下、OO(オーオー)と略すね。
昔から名前は聞いたことはあったけど、その頃まさにこれだと思ったね。プロであるならば、なりたいならば、これやっとかんとって。

しかし、これに取り組んだ人ならわかるはず。
この世界は本当に難しいし、奥が深い。
私自身も理解できて自分で実装できるようになったと感じたのは正直本当にこの2~3年だと思うし、まだまだと思う。

だから、これを理解できるようになると、本当にシステム屋としての自信がつくよ。
間違いなくこの世界はプロのプログラマー、システム屋にしか習得できないから。
なぜか???それは膨大な時間がかかるから、プログラミングに対してそれだけ時間をとれるのはプロのプログラマだけよ。
もう入門書を一冊買って写経してできるという代物じゃないんよね。

これ一般的に言われていること、

「OOは、職業プログラマー、システム屋の中でも理解できている人はほんの一握り」

えらそうに書いたけど、私が言っていることじゃないから勘違いしないで。一般的に言われていること。

そういうことを聞くと、身につけておきたいと思うのは当然の欲求だと思う。
私自身もそう感じたし、この10 年できるかどうかわからない仕事でも断らず取り組んでなんとかしてきた、それはこの世界を理解したかったから。

このブログでOOに出てくる細かい知識のことを解説してもあんまり意味がないと思ってる。
例えば、「疎結合とは?」「抽象化とは?」「シングルトンパターンとは?」
それ解説しても書けることは他と同じようなことだし、これらってブログ読んだだけで理解できる簡単な話じゃないよね。

それよりもOOを習得するためにはどうすればよいのか、どういう考え方、どのような学習をすればよいのか書いてみたいと思う。