この記事は SYSKEN Advent Calendar 2018 一日目の記事です
はじめに
やとです。
今回はプログラミングをしていたら一度は耳にするオブジェクト指向について
大雑把なイメージがつかめるように説明していきたい思います。
目次
1. オブジェクト指向ってなに?
1.1 オブジェクト指向のイメージ
1.2 あらゆることをモノとして捉える
1.3 相互作用をまとめる軸
1.4 プログラミングにおけるオブジェクト指向
2. オブジェクト指向を使うと何が良いの?
2.1 共同開発しやすい
2.2 保守管理しやすい
1. オブジェクト指向ってなに?
1.1 オブジェクト指向のイメージ
オブジェクト = モノ(物)という理解で大丈夫です。
オブジェクト指向のイメージは、「誰でも使えるモノを作り、そのモノがもたらす結果を利用しよう」という考え方だと思ってください
オブジェクト指向の名前に含まれている、このオブジェクトというは私たちの身近にたくさんあります。
車、リモコン、パソコンなどすべてがオブジェクトです。
誰でも使えるモノの例
私たちが車というモノを操作する際に、車がどうやってできているのかを理解する必要はなく
車は私たちに「早く移動できる」という結果をもたらしてくれます。
このようなモノを誰でも使えるモノとして扱います。
1.2 あらゆることをモノとして捉える
車を便利に使えるモノとして挙げましたが、この車もタイヤやエンジンなど様々なモノを使うことによって成り立っています。
エンジンというモノは力、タイヤというモノは回転といったような結果をもたらしてくれます。これらの結果を車というモノが管理しているからこそ、車が成り立っています。
つまり、あらゆるモノは「モノとモノとの相互関係によって成り立っている」と言えます。
イメージとしては二分木が近いです。
1.3 モノ同士の相互作用をまとめる軸
あらゆるモノには必ず軸となる概念があります。
概念と聞くと難しい感じがしますが、心配することはありません。
概念とは複雑なものに対しての大まかな認識内容のことです。
例えば「走る」という言葉を具体的に説明したとすると
「脚の筋肉が収縮して、転ばないようにバランスをとって前に進む」でしょうか。
さらに具体化すると原子レベルの説明もできます。
でも、普段からこんな細かいことなんて気にしてないですよね。
なぜ気にしないといいかと言うと、この面倒な現象すべてを抽象化して「走る」という言葉を作っているからです。
オブジェクト指向でも同じことをします。
製品という抽象的な概念に対して部品づくりをするのです。
また、部品すらも製品として扱い、その部品に対しても部品づくりをするのです。
例として、人間は人間という軸を基準にして鼻・目・耳といった部品が組み合わさって成り立っています。
さらにこの鼻・目・耳といった部品に対しても部品を作っていきます。
1.4 プログラミングで言うところのオブジェクト指向
オブジェクト指向をプログラミングに適用するとどうなるのでしょうか。
あるウェブシステムを作ろうとするのであれば、いろいろな機能を開発する必要があります。
この機能一つ一つがオブジェクトに相当します。
前述した車と同じようにウェブシステムもオブジェクトの相互作用によって出来上がります。
2 . オブジェクト指向を使うと何が良いの?
2.1 共同開発がしやすい
複数人で分担して開発をする場合に、車という「誰でも使えるモノ」を作っておけば
共同開発者は車の中身を理解する無駄が省け、結果のみを得ることが出来て効率的に開発ができます。
2.2 保守管理がしやすい
機能ごとに分割をしているので、各機能ごとでの修正・交換が容易になります。
さいごに
今回はオブジェクト指向の概念的なところしか説明していませんが、この考え方をプログラミングに落とし込めば
現実世界をまるごとプログラミングすることが可能になります
もし、興味があれば詳しく調べてみてください。
明日はふぃらっはが担当してくれます。
どんなことを話してくれるのか楽しみですね!
では。
参考サイト
オブジェクト指向と10年戦ってわかったこと
オブジェクト指向の継承とは?わかりやすく説明してみた
コメントを残す